使用智能轮询插件进行jquery轮询

时间:2011-04-14 15:13:15

标签: jquery jquery-plugins get polling ajax-polling

我正在尝试让我的生活让这个插件工作,但我不理解状态功能,所以重试不会解雇。

$.poll(10000, function(retry){
  $.get('willfail', function(response, status){
    if (status == 'success') {
      // Do something
      alert("YES");
    } else {
      alert("NO");
      //retry();
    }
  })
})

如果我将get请求设置为'/',它将向我发出警告YES消息,但实际上,尽管有ELSE,警报No消息永远不会被触发。

我正在使用jquery轮询插件:

https://github.com/jeremyw/jquery-smart-poll

有什么想法吗?

2 个答案:

答案 0 :(得分:2)

您还可以使用Smartupdater - jQuery插件

http://www.eslinstructor.net/smartupdater/

让你:

  • 停止/重新开始轮询
  • 动态更改轮询超时
  • 动态切换轮询网址
  • 动态切换回调函数
  • 远程设置轮询超时
  • 远程选择回叫功能

答案 1 :(得分:1)

这可能是个坏榜样。传递给$.get的回调只有在请求成功时才会被触发。试试这个:

$.poll(10000, function(retry){
  $.ajax({
      url:'willfail',
      success: function(){
          // Do something
          alert("YES");
      },
      error: function() {
          alert("NO");
          retry();
      }
  });
});

有关详细信息,请查看$.ajax