首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >关闭长轮询连接jQuery

关闭长轮询连接jQuery
EN

Stack Overflow用户
提问于 2009-10-05 21:15:10
回答 1查看 3.1K关注 0票数 3

背景

我使用像龙卷风一样的服务器来支持长时间的投票。每一个新的网页,一个用户来设置一个长的投票服务器如下:

代码语言:javascript
复制
$.ajax({
    type: 'GET',
    url: "/mylongpollurl/",
    dataType: 'application/json',
    success: function(json) {
        // I do stuff here
    },
    error: function(xhr, errText, ex) {
        // If timeout I send a new long-poll request
    }
});

问题

现在,我将依靠Fiddler获得的数据来监视从我的浏览器(FF )发出的所有请求。

  1. Page 1已加载并发出了长轮询请求,现在在服务器端空闲。
  2. i单击指向第2页的链接,该页面被加载并设置长轮询请求,但来自第1页的长轮询请求仍在服务器端闲置(根据Fiddler的说法)。

这意味着我将在点击页面时堆叠所有长的轮询调用,从而结束服务器上的大量活动连接(或者它们可能共享连接吗?)

我的想法

  • 是一个类似龙卷风的服务器(使用epoll),它可以处理相当多的连接。但在我看来,这个事实并不是用来利用的。我的意思是,在这种情况下,我不想在服务器上超时(如果客户机disappears).
  • I知道那些独立页面更好地使用一个通用的头,并且只通过ajax调用交换内容),但是我们今天使用的这个设计不是我的调用……
  • 解决这个问题的最好方法可能是重新使用连接(我认为很难完成),或者在浏览器离开页面后立即关闭(您单击另一个页面)。

谢谢

-- MyGGaN

EN

回答 1

Stack Overflow用户

发布于 2009-10-06 02:26:01

对于长轮询连接,您需要确保在Fiddler中设置了“流”选项。否则,Fiddler将无限期地保持连接打开,等待响应完成。

通常,当您从一个页面导航到另一个页面时,客户端应该拆除打开的长轮询连接,从而有效地关闭连接。我说应该是因为这并不总是正常工作,例如,当你关闭IE中的弹出窗口时。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1522433

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档