我在使用长轮询技术从其余服务器获取推送类型更新的Web应用程序上工作。
它运行setTimeout(),该函数执行执行xhr GET请求且超时为120秒的函数。它还向服务器发送一个特殊的“接受等待”标头,该标头为60秒,该标头告诉服务器何时以200答复并且没有用于客户端的数据。然后客户端重复此setTimeout。当客户端“登录”到服务器时,此操作将一直持续下去。
我有一个使用Chrome的用户(他只能使用Chrome,因此我没有验证它是否可以在其他浏览器中重现,因为没有其他人可以重现此问题),当他最小化时,GET请求开始超时。在我的longpoller看来,这好像服务器已关闭。
我已在其余服务器上启用调试,并确认该用户在2分钟内没有任何调试(似乎表明GET请求没有脱离浏览器)。
我还在Chrome终端(F12)的“网络”标签中看到,请求在2分钟时“正在取消”,表明它们正在超时。
使用“ localhost”(我认为可以排除网络问题)时,也会重现此问题。
我如何获得有关Chrome的更多信息,以了解为什么它不允许该用户进行HTTP访问?
谢谢
最佳答案
如果仅在谷歌浏览器中发生此问题,则可能是放弃了标签页,您可以通过禁用标志,在地址栏上键入以下网址并查看其是否启用来防止此问题:
chrome://flags/#automatic-tab-discarding