Jquery 当用户停止加载页面时,如何阻止JS函数停止?
我喜欢尝试制作一个简单的聊天页面。功能如下:Jquery 当用户停止加载页面时,如何阻止JS函数停止?,jquery,ajax,function,Jquery,Ajax,Function,我喜欢尝试制作一个简单的聊天页面。功能如下: function Update() { $.post('update.php',{ some_data:some_data },function(data,success){ Update(); } ); } 现在,您看到post请求一完成,函数就会再次运行。这样做的目的是检查是否有任何新消息输入到数据库中,如果有,则在页面上显示。所以我希望这个函数继续一次又一次地执行。但是我注意到,如果我点击浏览器上的十字(X)来阻止页面加载,那么函数就会停止。
function Update()
{
$.post('update.php',{
some_data:some_data
},function(data,success){
Update();
}
);
}
现在,您看到post请求一完成,函数就会再次运行。这样做的目的是检查是否有任何新消息输入到数据库中,如果有,则在页面上显示。所以我希望这个函数继续一次又一次地执行。但是我注意到,如果我点击浏览器上的十字(X)来阻止页面加载,那么函数就会停止。我如何克服这一点?通常情况下,由于该功能反复运行,页面加载从未停止,因此如果有人手动停止,该功能将停止。我怎样才能阻止它?谢谢 您需要使用另一种方法,Javascript具有
setInterval()
方法,该方法以您可以指定的间隔反复执行函数。我们需要从success中删除update()
函数中的另一个更新调用:
function Update() {
$.post('update.php', {
some_data: some_data
}, function (data, success) {
//logic here but not another Update() call!
});
}
并添加一个setInterval()
,例如每5秒调用一次(时间以毫秒为单位:
setInterval(function(){Update();}, 5000);
示例FIDDLE:为什么不使用setInterval()
?