长轮询ajax问题
我已经设置了一个轮询脚本,它基本上检查通知队列是否有新的通知可用。如果是,它将显示它们并从队列中删除通知 我使用的是firebug,当我重新加载页面时,上一个投票保持打开状态,并创建一个新的投票长轮询ajax问题,ajax,long-polling,Ajax,Long Polling,我已经设置了一个轮询脚本,它基本上检查通知队列是否有新的通知可用。如果是,它将显示它们并从队列中删除通知 我使用的是firebug,当我重新加载页面时,上一个投票保持打开状态,并创建一个新的投票 function poll(){ $.ajax({ url: "test.php", dataType: "json", complete: poll, timeout: 30
function poll(){
$.ajax({
url: "test.php",
dataType: "json",
complete: poll,
timeout: 30000,
success: function(data){
$.gritter.add({
title: 'This is a regular notice!',
text: data.message,
image: 'http://a0.twimg.com/profile_images/59268975/jquery_avatar_bigger.png',
sticky: false,
time: ''
});
},
error: function(){
alert("OMG ERROR");
}
});
};
poll();
我很确定原因是您将poll作为完整函数传递,有效地创建了一个非终止或级联递归(不知道这是否是编程101中的正确术语…我今天才开始处理poll,但这不是保持poll运行的想法。因此,如果添加了另一个通知,则会通知用户?这是轮询的想法,但在您的方法中,complete是轮询本身的一部分,因此如果您自己调用自己,这是一个递归。您可以使用匿名函数$.ajax({complete:function(){poll();},…..})进行尝试,您是正确的。我已经拿走了那本书;完成:轮询并添加轮询();在成功区域内,这似乎是好的。谢谢你的帮助。