0

test.phpファイルに次のアルゴリズムがある場合:

for ($i = 0; $i < 1000; ++$i)
{
     //Operations...
     ALERT_TO_MAIN_PAGE($i);
}

main.htmlページからAJAXを使用してtest.phpを呼び出します

$iライブ値を使用して、の進行状況を追跡するにはどうすればよいですか?

したがって、main.htmlは次のように表示されます。これは、PHPファイルが1回の反復を完了したときです。

Done 0.
Done 1.
Done 2.
...
4

2 に答える 2

2

HTML5サーバー送信イベントを使用して、そのようなメッセージをブラウザーに送信してみてください。

ウェブサイトからすぐに:

<?php
header('Content-Type: text/event-stream');
header('Cache-Control: no-cache'); // recommended to prevent caching of event data.

/**
 * Constructs the SSE data format and flushes that data to the client.
 *
 * @param string $id Timestamp/id of this connection.
 * @param string $msg Line of text that should be transmitted.
 */
function sendMsg($id, $msg) {
  echo "id: $id" . PHP_EOL;
  echo "data: $msg" . PHP_EOL;
  echo PHP_EOL;
  ob_flush();
  flush();
}

$serverTime = time();

sendMsg($serverTime, 'server time: ' . date("h:i:s", time()));
于 2012-07-13T13:11:59.927 に答える
1

ajaxはphp側で操作が完了するのを待つため、この方法では実行できません。

PHPをオフラインで(バックグラウンドで)実行し、ajaxを使用して状態を要求する(つまり、セッションの進行状況に関する情報を読む)必要があります。

于 2012-07-13T13:10:00.517 に答える