2016-11-30 3 views
0

今日私はPHPスクリプトの進捗バーを使用する必要があります。PHP - 長いロードスクリプトのためのJSの進捗バー

jsの進行状況バーを持つ私のPHPスクリプト。

<?php 

$counter = 100; 
for($i = 1; $i<=$counter; $i++) 
{ 
    $percent = intval($i/$counter * 100); 

       echo '<script language="javascript"> 
    document.getElementById("progress").innerHTML="<div style=\"width:'.$percent.';background-color:#ddd;\">&nbsp;</div>"; 
    document.getElementById("information").innerHTML="'.$i.' row(s) processed."; 
    </script>'; 
} 
?> 

とhtmlファイル:

<div id="progress" style="width:auto;border:1px solid #ccc;"></div> 
<div id="information" style="width"></div> 

すべてが素晴らしいことが、私は、サイトの私のソースコードを見ると、たとえばあるでしょう:

$カウンタ= 100; =〜300行のソースコード

$ counter = 200; = 600行のソースコード

$ counter = 500; =〜1500行のソースコード

+0

本当にそのスクリプトをページに100回挿入していますか? – Hackerman

+0

XD。このようにすることはできません。何かをロードしているときにプログレスバー/スピナーを表示したい場合は、ajaxを使用する必要があります... – n00dl3

+0

いいえ、私は '012'を追加します。 – limakg

答えて

0

PHPはプログレスバーを置くのに適切な言語ではありません。 PHPはすべてを一度に実行し、一度にクライアントにデータを送信します。

ほとんどの場合、「準備完了状態」が検出されます。これにより、進行状況バーに4または5の値が表示されます。

もちろん、あなたはそれを偽造することができます。進捗バーがちょうどいくつかのタイマーの間に、サーバーに応答しているふりをする

あなたができることは、複数のAJAXリクエストを作成することです、これらのリクエストのそれぞれは300行を処理するPHPを引き起こします。しかし、プログレスバーがこれをするのに苦労する価値があるかどうかはわかりません。