Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 当用户停止加载页面时,如何阻止JS函数停止?_Jquery_Ajax_Function - Fatal编程技术网

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()