如何定期触发AJAX请求?

<meta http equiv=“刷新”Content=“5”>

此脚本每5秒重新加载或刷新一次页面。但是我想使用jQuery和AJAX调用来实现它。可能吗

正如其他人所指出的,setInterval和setTimeout将起到作用。我想强调一点更先进的技术,这是我从保罗·爱尔兰的精彩视频中学到的:http://paulirish.com/2010/10-things-i-learned-from-the-jquery-source/

对于可能最终花费比重复间隔更长时间的定期任务(如低速连接上的HTTP请求),最好不要使用setInterval()。如果第一个请求尚未完成,而您又启动了另一个请求,那么您可能会遇到这样的情况:有多个请求消耗共享资源,并且彼此饥饿。您可以通过等待计划下一个请求直到最后一个请求完成来避免此问题:

//使用命名的立即调用函数表达式。
(职能工作人员(){
$.get('ajax/test.html',函数(数据){
//现在我们已经完成了下一个请求计划。
$('.result').html(数据);
setTimeout(工人,5000);
});
})();

为简单起见,我使用成功回调进行调度。缺点是一个失败的请求将停止更新。要避免这种情况,可以使用完整回调:

(函数工作者(){
$.ajax({
url:'ajax/test.html',
成功:功能(数据){
$('.result').html(数据);
},
完成:函数(){
//在当前请求完成时安排下一个请求
setTimeout(工人,5000);
}
});
})();

发表评论