0
私はforeachループ内で、SSH経由でルータに接続し、いくつかの設定ブロックを実行するPHPサーバサイドスクリプトを持っています。このfonctionはjQueryとAjaxリクエストによって呼び出され私のPHPループのステップをAjaxでどのように表示できますか? (長いポーリング...)
<?php
function apply($hostname){
$ssh = new Net_SSH2($hostname);
if (!$ssh->login($this->username, $this->password)) {
exit('Login Failed');
}
$i = 1;
foreach($NMConf->configuration as $conf_step){
$ssh->write($conf_step); //Can take 5s...
$this->ssh_errors[] = $ssh->read("#");
echo "Step".$i." ok.. <br/>";
$i++;
flush();
sleep(1);}
} ?>
...
$.ajax({
url:'apply',
type:'POST',
cache:false,
async:false,
data:{},
success: function(data){
console.log(data);
$('#myDiv').append(data); // *_*
}
});
私は私の出力のような、異なるステップをDIVに表示したい
..
Step 1 (working....)
次に
Step 1 OK!
Step 2 (working ....)
d次に
Step 1 OK!
Step 2 OK!
どうすればいいですか?
私は長いポーリングのものを見ていました&リバースajaxですが、それはちょっと難しいようです。
すべてのアイデア!
おかげで、私が提案する何
を_intそれを手動で行う。 'session_write_close()'でしかできません - 後で同じセッションを開こうとしたことはありませんでしたが、楽しい実験になるかもしれません。 – phant0m
セッションは有効で、同じセッションがリクエスト間で使用されるまで有効です。したがって、基本的には、最初のリクエストでセッションに値を入れることができ、その他のリクエストはすべて、そのデータだけを取得して、セッションは要求ごとに開始されます。 –
私はあなたの言葉を理解していません。要点:スクリプトが進行中で、あるスクリプト/リクエスト内から$ _SESSIONを継続的に更新すると、セッションデータを永続化するまでは、他のリクエスト/セッションでは利用できなくなります。要求の – phant0m