Heim >Backend-Entwicklung >PHP-Tutorial >PHP-Fortschrittsbalken

PHP-Fortschrittsbalken

WBOY
WBOYOriginal
2016-07-30 13:29:441302Durchsuche

Wenn Sie in PHP einen Fortschrittsbalken erstellen, können Sie die ob_flush(); flush(); zwei Funktionen verwenden, um den Cache zu aktualisieren und die Informationen im Cache an den Browser zu senden. Beachten Sie jedoch, dass viele Server vor dem Senden etwa 4 KB an Inhalten ansammeln. Sie können daher eine Aktualisierung erzwingen, indem Sie Leerzeichen ( echo str_pad('', 4096); ) ausfüllen.

<code><span>public</span><span><span>function</span><span>insert</span><span>(<span>$data</span>,<span>$html</span>)</span>
    {</span><span>echo</span><span>$html</span>;
        <span>$i</span> = <span>0</span>;
        <span>$sum</span> = count(<span>$data</span>);
        <span>if</span>(<span>$sum</span> == <span>0</span>){
            <span>echo</span><span>"数据出错"</span>;
            <span>return</span>;
        } 
        <span>$noped</span> = <span>0</span>;
        <span>try</span> { 

               <span>foreach</span>(<span>$data</span><span>as</span><span>$v</span>){ 
                    <span>$tdata</span>[] = <span>$v</span>;
                    <span>$i</span>++;
                    <span>if</span>( <span>$i</span>%<span>20</span>==<span>0</span> || <span>$i</span>==<span>$sum</span>-<span>1</span>){ 
                        <span>$ret</span> = <span>$this</span>->btrManger_m->inserts100(<span>$tdata</span>); <span>//一次插入100条</span><span>if</span>(<span>$ret</span>){ 
                            <span>$s</span> = <span>$i</span>/<span>$sum</span>*<span>100</span>;
                            <span>echo</span> str_pad(<span>''</span>, <span>4096</span>); <span>//填充缓存</span><span>echo</span><span>"<script> setProgressBar("</span>.(<span>$s</span>).<span>");</script>"</span>;
                            ob_flush();
                            flush();
                        }
                        <span>else</span>{ <span>//出错 终止</span><span>break</span>;
                        }
                        <span>$tdata</span> = <span>array</span>();
                    } 
            }
        } <span>catch</span> (<span>Exception</span><span>$e</span>) {
            <span>echo</span><span>$e</span>; 
            <span>return</span>;
        }
        <span>$resultStr</span> = <span>"'共计"</span>.<span>$sum</span>.<span>"条记录,成功操作完成"</span>.<span>$i</span>.<span>"条!'"</span>;
        <span>echo</span><span>"<script> setText("</span>.<span>$resultStr</span>.<span>");</script>"</span>;
    }</code>

Das Frontend wird mithilfe des Fortschrittsbalkens von Bootstrap implementiert:

<code><span><span>function</span><span>setProgressBar</span><span>(width)</span>{</span>
    str=width+<span>"%"</span>;
    $(<span>'.progress-bar'</span>).attr(<span>'aria-valuenow'</span>,str).css(<span>'width'</span>,str) .html(str);
    <span>if</span>(width == <span>100</span>){
        $(<span>'#idInsertResult'</span>).html(<span>"数据操作完成!"</span>);
    }
}</code>
<code><<span>div</span><span>class</span>=<span>"progress"</span>>
    <<span>div</span><span>class</span>=<span>"progress-bar progress-bar-info progress-bar-striped active"</span> role=<span>"progressbar"</span> aria-valuenow=<span>"0"</span> aria-valuemin=<span>"1"</span> aria-valuemax=<span>"100"</span> style=<span>"width: 3%;"</span>>
               <span>0</span>%
    </<span>div</span>>
</<span>div</span>></code>

Urheberrechtserklärung: Dieser Artikel ist ein Originalartikel des Bloggers , ohne die Erlaubnis des Bloggers. Eine Vervielfältigung ist nicht gestattet.

Das Obige stellt den PHP-Fortschrittsbalken vor, einschließlich einiger Aspekte des Inhalts. Ich hoffe, dass er Freunden, die sich für PHP-Tutorials interessieren, hilfreich sein wird.

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn