在jquery中处理服务器端中止的长轮询/彗星更新

时间:2011-01-17 09:26:12

标签: javascript jquery ajax

我有一个应用程序,它使用一个开放的JQuery Ajax连接来进行更新的长轮询/彗星处理。

有时浏览器和服务器会丢失此连接(服务器崩溃,网络问题等)。

我希望客户端检测到更新已崩溃并通知用户刷新页面。

最初看起来我有两个选择:

  • 处理JQuery ajax调用中的'error'条件
  • 处理JQuery ajax调用中的“完成”条件

然而,在测试中,当 服务器 中止查询时,似乎都没有触发这些条件。

如何让我的客户了解服务器已经消失?

1 个答案:

答案 0 :(得分:1)

是否可以添加每隔几秒或几分钟运行的setInterval()函数?这样您就可以触发一个脚本来检查服务器是否仍在运行,如果没有,则重置彗星连接。 (我完全不知道你用于长轮询的是什么,所以我不知道是否可以在没有页面重新加载的情况下重置该连接。如果没有,你仍然可以向用户显示消息。)< / p>

这样的事情:

var check_server = setInterval(function() {
  // run server-check-script...
  // if (offline) { // reset }
}, 60000);