PHP에서 진행률 표시줄을 만들 때 ob_flush(); flush();
두 가지 기능을 사용하여 캐시를 새로 고치고 캐시에 있는 정보를 브라우저로 보낼 수 있습니다. 하지만 많은 서버가 콘텐츠를 전송하기 전에 약 4K의 콘텐츠를 축적하므로 공백을 채워 강제로 새로 고칠 수 있습니다( echo str_pad('', 4096);
).
<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>
프런트 엔드는 부트스트랩의 진행률 표시줄을 사용하여 구현됩니다.
<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>
저작권 설명: 이 글은 블로거의 원본 글입니다. ,블로거의 허락없이 무단 전재를 금합니다.
위 내용은 내용의 측면을 포함하여 PHP 진행 표시줄을 소개한 내용이 PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.