2016-08-11 25 views
1

我使用长轮询技术从一个其他服务器获取推送类型更新的Web应用程序。当chrome被最小化时,xhr请求超时

它运行setTimeout(),它执行一个函数,该函数执行xhr GET请求,超时时间为120秒。它还向服务器发送一个60秒的特殊“Accept-Wait”标头,告诉服务器何时回复200,客户端没有数据。然后客户端重复setTimeout。当客户端“登录”到服务器时,这将永远持续。

我有一个用户使用Chrome(他只能使用Chrome,所以我没有验证它是否可以在其他浏览器中重现,因为没有其他人可以重现此问题),当他最小化时,GET请求开始计时出。这看起来像我的longpoller像服务器关闭。

我已启用对其他服务器的调试,并确认它没有任何来自此用户的2分钟(似乎表明GET请求没有从浏览器中获取)。 我也在Chrome终端(F12)“网络”选项卡中观看过,请求在2分钟内“取消”,表示它们超时。 这个问题在使用“localhost”时也会重现,我认为它排除了网络问题。

如何获取有关Chrome的更多信息:为什么它不会让该用户的HTTP流量流出?

感谢

+0

解决了吗? –

+0

不......事实上,我前往现场拜访客户并进一步追究这个问题,但是当我到达时,他们再也无法再现问题了。 我相信这是一个网络问题,甚至是一些网络安全问题,与我的故障排除并行解决。 –

回答

0

如果这个问题只发生在谷歌浏览器,也许这是丢弃你的标签,你可以阻止它通过禁用标志,键入地址栏中以下URL并查看是否启用它:

chrome://flags/#automatic-tab-discarding 
+0

不幸的是,事实并非如此。他们有这个残疾人。 事实上,如果正因为如此,我不会假定longpolling定时器会超时GET请求。 –