如何阻止JS函数在用户停止加载页面时停止?

时间:2014-07-25 13:51:56

标签: jquery ajax function

我喜欢尝试制作一个简单的聊天页面。功能如下:

function Update()
{
$.post('update.php',{
some_data:some_data
},function(data,success){
Update();
}
);
}

现在,您会在post请求完成后立即看到该函数再次运行。这样做是检查是否有任何新消息输入到数据库中,如果有,则将其显示在页面上。所以我希望这个功能能够一遍又一遍地继续执行。但是我注意到,如果我点击停止加载页面的浏览器上的十字(X),该功能就会停止。我该如何克服这个问题?通常由于功能反复运行,页面加载永远不会停止,所以如果有人手动停止,该功能将停止。我怎么阻止它?谢谢...

1 个答案:

答案 0 :(得分:0)

您需要使用不同的方法,Javascript具有setInterval()方法,该方法以您可以指定的间隔反复执行函数。我们需要在Update()函数中删除其他更新调用:

function Update() {
    $.post('update.php', {
        some_data: some_data
    }, function (data, success) {
       //logic here but not another Update() call!
    });        
}

例如,每隔5秒添加一个setInterval()调用它(时间以毫秒为单位测量:

setInterval(function(){Update();}, 5000);

示例 FIDDLE http://jsfiddle.net/KVtbp/