ロングポーリングの方法に関するビデオチュートリアルに従っていましたが、完了したようですが、何らかの理由で1つの問題があり、サーバーからの応答は1つですが、アラートが3〜6回表示されます。「成功」は、1回の応答が得られた場合にのみ発生すると考えていました。
2 番目の質問は、この JavaScript コードが 30 秒ごとに ajax 呼び出しをキャンセルして再起動するようにするにはどうすればよいですか? .abort() を使用して setInterval を配置しましたが、運が悪かったため、おそらく配置が間違っていました。
知恵と助けをありがとう!
var timestamp = null;
var imp = null;
var annk = null;
function waitForMsg(){
$.ajax(
{
type: "GET",
url: "/test?timestamp=" + timestamp + "&imp=" +imp + "&annk=" +annk,
dataType : 'json',
async: true,
cache: false,
success: function(data)
{
alert("hello");
if(data.annkr > "0"){
$("#myidone").css("background-color", "#cccccc");
}else{
$("#myidone").css("background-color", "#cccccc");
}
if(data.impr > 0){
$("#myidtwo").css("background-color", "#000000");
}else{
$("#myidtwo").css("background-color", "#000000");
}
annk = data.annkr;
imp = data.impr;
timestamp = data.timestamp;
setTimeout('waitForMsg()',2000);
}
});
}
$(document).ready(function(){
waitForMsg();
});
ReadyStates に関する Stackoverflow の記事を読みましたが、一度だけ準備ができていることを確認し、準備ができた後にそれを行うにはどうすればよいですか?