2012-04-03 9 views
0

サーバーからのデータフローを無限ループにしたいと思っています。サーバー側では、phpは出力をある頻度でフラッシュしますが、データをある程度の大きさ(たとえば1KB)ごとに設定する必要があります。ブラウザは応答をバッファリングして、まとめて表示していますが、すべて一緒に表示しています

これは、レスポンスをバッファリングするブラウザによって発生していると考えられます。だから私はjavascriptを介してブラウザのこの動作を操作しようとしたい。

+0

代わりに、いくつかのブラウザをWebSocketをを使用して、もちろんです。 'readystate 3'を' XHR'オブジェクトから呼び出して簡単にテストできます。 – jAndy

+0

個別のAjaxリクエストでチャンクを取得しようとしましたか? – nnnnnn

+0

PHPマニュアルhttp://php.net/manual/en/function.flush.phpにバッファリングや各種ブラウザに関する情報がありますが、JavaScriptを使ってこのような方法でブラウザの動作を操作することができるのではないかと疑っています。 –

答えて

0

解決策は、ブラウザが応答をバッファリングし、任意の空白を使用してチャンクをバッファサイズに埋め込むことです。

パディングバイトを決定するために各ブラウザがどれだけバッファリングするかを知る必要があります。これは、ブラウザごとにテストを行い、その後にサーバー側でユーザーエージェント情報を確認することで実行できます。

別のアプローチは、期待のように、彼らはそれをチャンクを行うことの後にのみ、最初の数百キロバイトをキャッシュ