ホームページ  >  記事  >  バックエンド開発  >  ajax の長い接続に関する問題についてアドバイスをお願いします。

ajax の長い接続に関する問題についてアドバイスをお願いします。

WBOY
WBOYオリジナル
2016-06-13 13:16:25718ブラウズ

Ajaxの長い接続の問題についてアドバイスを求めています。 。
webQQ のようなチャットページを作成しています。当初は 2 秒ごとに ajax 経由で情報を取得するリクエストを送信していましたが、メッセージを送信した後、新しいメッセージがない場合に変更したいと考えています。 、サーバーは戻りません。サーバーから返された新しいメッセージが発生すると、クライアントは別のリクエストを送信します。
ただし、このメッセージが待機している間に、他の新しく作成された ajax リクエストが送信されることが判明しました。この復帰後も他のものは実行を続行するようですが、ajax がオブジェクトを作成した後は、相互に無関係になるはずです。私はjquery ajaxを使用します
PHPでは次のように書きます:
while(($res->num_rows)==0){
$res->close();
sleep(1 );
$res=$mysqli->query($sql);
}

この while がコメントアウトされている場合、クライアントは 2 秒ごとにリクエストを送信します 問題ありません
クライアント コード:
function get_msg(){
$.post("/lts/class/get_msg.php","lst_msg="+lst_msg,function Get_msg_callback(msg_back){
var i=0;
while(msg_back[i].msg!=""){
$('.msgs_box').append("

"+msg_back[i]. sender+" : "+msg_back[i].msg+"
");
lst_msg=msg_back[i].id;
i++ ;
}
/ /すぐに呼び出します
//get_msg();
},"json");
return;
}

- -----解決策--- -----------------
それはあなたのセッションの問題です

セッションを変更せずにページで session_start の直後に session_write_close() することをお勧めします

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。