我喜欢尝试制作一个简单的聊天页面。功能如下:
function Update()
{
$.post('update.php',{
some_data:some_data
},function(data,success){
Update();
}
);
}
现在,您会在post请求完成后立即看到该函数再次运行。这样做是检查是否有任何新消息输入到数据库中,如果有,则将其显示在页面上。所以我希望这个功能能够一遍又一遍地继续执行。但是我注意到,如果我点击停止加载页面的浏览器上的十字(X),该功能就会停止。我该如何克服这个问题?通常由于功能反复运行,页面加载永远不会停止,所以如果有人手动停止,该功能将停止。我怎么阻止它?谢谢...
答案 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/