コンソールログ...私はJavascriptに出力をストリーミングするためにPHPを必要としますがJavascriptが古いレスポンスを維持し、そのようにそれらを出力しますので、JavaScriptコンソールはresponseTextは「保存」されている状態を記録します
[0]: Line to show.
[0]: Line to show.[1]: Line to show.
[0]: Line to show.[1]: Line to show.[2]: Line to show.
[0]: Line to show.[1]: Line to show.[2]: Line to show.[3]: Line to show.
[0]: Line to show.[1]: Line to show.[2]: Line to show.[3]: Line to show.[4]: Line to show.
[0]: Line to show.[1]: Line to show.[2]: Line to show.[3]: Line to show.[4]: Line to show.Array
(
[0] => [0]: Line to show.
[1] =>
[2] =>
[3] => [1]: Line to show.
[4] =>
[5] =>
[6] => [2]: Line to show.
[7] =>
[8] =>
[9] => [3]: Line to show.
[10] =>
[11] =>
[12] => [4]: Line to show.
[13] =>
[14] =>
)
古い応答。しかし、私がPHPで保存した配列を見て、以前のエコーがJSにフラッシュされていないことがわかります。
Javascriptを:
$.ajax({
url: "../controller/controller.php",
type: "POST",
data: {operation: 'rxMode'},
xhr: function(){
var xhr = $.ajaxSettings.xhr();
xhr.onprogress = function(e){ console.log(e.currentTarget.responseText); };
console.log(xhr);
return xhr;
}
});
PHP:私はむしろ私はJavascriptを好むだろう古い応答を削除したくない:
$out = array();
for ($i = 0; $i<5; $i++){
echo "[$i]: Line to show.";
array_push($out, ob_get_contents());
ob_flush();
array_push($out, ob_get_contents());
flush();
array_push($out, ob_get_contents());
sleep(2);
}
print_r($out);
私の希望responseTextが
[0]: Line to show.
[1]: Line to show.
[2]: Line to show.
[3]: Line to show.
[4]: Line to show.
編集です私の希望するresponseTextだけを与えます。
PHP配列を削除してprint_rを実行しても問題が解決されない場合は、デバッグ用です。 –
次の応答の前にxhr varをクリアしてみてください。 'remove'コマンドと同様です。 **しかし**あなたはxhr宣言から 'var'を削除する必要があります。 – Soaku
変数を削除して何を意味するのか不明です。それはjQueryのajaxラッパーにあるので、それを削除するとajaxが間違った変数を指してしまうでしょう?? –