我有一种ajax轮询周期 - 拉取消息,处理消息,等待,再次拉动...... - 一切正常,直到用户断开互联网连接(它甚至可以是如此简单的用户操作,如睡眠/休眠PC )。在此之后 - 至少在最新的Chrome中 - POST失败(逻辑上) - 但在重新连接到互联网之后,轮询周期不会再次开始(即使会话仍处于开启状态)。
jQuery(function(){
// ba polling main
function pollingMain() {
$.ajax({
type: "POST",
url: ba_home_url+"/pollingscript.php",
data: {
"load": "something",
"data-one": 0,
"data-two": 0
},
dataType: "json",
timeout: 60000,
success: function(data) {
if( data.status == 'nodata' ){
setTimeout(pollingMain,10000);
} else{
if( data.status == 'okdata' ){
console.log('Ok data recived');
setTimeout(pollingMain,10000);
} else{
//server responded with something we dont know what is
setTimeout(pollingMain,10000);
}
}
},
error: function(request, status, err) {
if(status == "timeout") {
setTimeout(pollingMain,10000);
}
}
});
}
pollingMain();
});
这是我的代码。我想我在错误回调中缺少一些东西 - 但是我应该在那里添加什么错误状态处理?
答案 0 :(得分:1)
您正在检查特定状态"超时"。添加else语句以处理其他状态。