【问题标题】:xhr requests timeout when chrome is minimizedchrome最小化时xhr请求超时
【发布时间】:2016-08-11 14:02:42
【问题描述】:

我正在开发一个 Web 应用程序,该应用程序使用长轮询技术从休息服务器获取推送类型更新。

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

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

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

如何获取有关 Chrome 为何不让该用户的 http 流量流出的更多信息?

谢谢

【问题讨论】:

  • 解决了吗?
  • 没有...其实我跑去现场拜访客户,进一步追查问题,但是当我到达时,他们无法再重现问题。我相信这是一个网络问题,甚至是一些网络安全问题,在我的故障排除过程中得到了解决。

标签: javascript google-chrome minimized


【解决方案1】:

如果这个问题只发生在谷歌浏览器中,可能它正在丢弃您的标签,您可以通过禁用标志来防止它,在地址栏上输入以下网址并查看它是否已启用:

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

【讨论】:

  • 不幸的是,事实并非如此。他们禁用了这个。事实上,如果是因为这个,我不会假设 longpolling 计时器会超时 GET 请求。
猜你喜欢
  • 2016-07-10
  • 2021-11-21
  • 2011-02-26
  • 2012-06-27
  • 1970-01-01
  • 2011-09-28
  • 1970-01-01
  • 1970-01-01
  • 2018-04-06
相关资源
最近更新 更多