我在Stack Overflow和Google搜索了标题中的特定错误消息,但没有找到它(在JavaScript编码的上下文中,而不是浏览器设置)。在我的网站上,有五个函数每10秒调用一次。这些功能做的事情,如:加载资源失败:net :: ERR_NETWORK_IO_SUSPENDED
- 检查用户的新邮件的收件箱
- 检查用户的帐户是否有新的即时消息
- 等
然而,如果用户登录,但是INACTIVE(不使用鼠标或按下任何键)约15分钟,当我使用Chrome浏览器“检查元素”时收到以下错误消息:
Failed to load resource: net::ERR_NETWORK_IO_SUSPENDED // (x 5)
Uncaught Type Error: Cannot read property 'combinedfiletimeinput' of undefined //one of my previously defined form values is now not defined
此时,用户的新电子邮件数量,新IM数量等变为空白(而之前它们是整数)。用户所要做的就是刷新页面或转到其他页面重新连接,所以这不是一个大问题。
我劈的解决办法是使用JavaScript计时器自动注销用户如果没有任何在15分钟内的下列事件:
- 鼠标点击
- 鼠标移动
- 关键按
有没有办法阻止这种“无法加载资源”的错误发生?
更新:这似乎发生在用户重新启动设备时用户的设备在仍然登录时睡眠/休眠状态。这是当Chrome的Inspect Element,Firebug等可以看到错误信息时。
UPDATE 10/02/2014:现在我已经将五个setTimeout函数压缩成了一个大的setTimeout函数。此外,在名为“combinedfiletimeinput”的输入中保留修改时间的表单已被删除,我现在处理文件修改时间的方式不同。
以下是显示错误的Chrome开发人员工具日志的屏幕截图。我添加了“mysite”来代替我的网站名称和“文件名”来代替实际的文件名。我也列出了外部JavaScript文件的名称,剩下的就是.js(对不起,但我只是想小心:))我剪掉了一些截图,所以文本会足够大读书。
正如你可以看到的截图,请求处理前三请求确定。然后,我“睡眠”我的设备,然后重新打开设备。这就是接下来的两个请求是错误的地方(红色)。在这两个错误发生后,请求会再次正常处理(黑色文本行,红色文本行之后)。控制台清楚地显示错误消息。
我不认为你可以避免无法加载资源错误。你有没有试图捕捉ajax查询中的错误,以避免未定义的类型错误? – Kesty
@AdamFischer如果您突然断开计算机与Internet的正常连接(例如拔出以太网电缆,关闭WiFi卡),此行为有何不同?我明白这不会导致'ERR_NETWORK_IO_SUSPENDED',但会导致某种错误。从JavaScript代码的角度来看,我很想知道'ERR_NETWORK_IO_SUSPENDED'与正常突然断开的不同之处。如果没有不同,只需等待几秒钟,然后再次尝试请求。 – apsillers
@apillers,你是向我或者凯蒂斯提出这个问题吗?我从来没有按照你的建议尝试过......我可以试一试 –