所以我有这个功能来检查对手何时连接。一切正常,除了clearInterval之外......我尝试添加window.setInterval和window.clearInterval。我尝试添加自我。太...
$(document).ready(function() {
var waitForOpponent = setInterval(checkUserStatus, 2000);
function checkUserStatus() {
$('#user').load('checkuser.php?randval='+ Math.random());
$("#user").ajaxStop(function(){
if(document.getElementById("user").innerHTML!=""){
clearInterval(waitForOpponent);
opponentConnected();
}
});
}
});
我也试过这样:
var waitForOpponent;
function check() { waitForOpponent = setInterval(checkUserStatus, 2000); }
check();
请帮帮我们......我尝试了一切......
答案 0 :(得分:2)
摆脱ajaxStop
并使用.load
的成功回调。
$('#user').load('checkuser.php?randval='+ Math.random(),function(){
if(document.getElementById("user").innerHTML!=""){
clearInterval(waitForOpponent);
opponentConnected();
}
});
如果请求的持续时间超过2秒,则永远不会调用ajaxstop。
我认为更好的选择是不使用setInterval:
function checkUserStatus() {
$('#user').load('checkuser.php?randval='+ Math.random(),function(){
if(document.getElementById("user").innerHTML!=""){
opponentConnected();
return; // exit
}
setTimeout(checkUserStatus,2000); // continue after 2 seconds
});
}
checkUserStatus(); // start it up
这可以防止ajax请求堆积在慢速连接或超时上。