草庐IT

javascript - 加载资源失败:net::ERR_NETWORK_IO_SUSPENDED

coder 2023-07-05 原文

我在 Stack Overflow 和 Google 上搜索了标题中的具体错误消息,但没有找到(在 JavaScript 编码的上下文中,而不是浏览器设置中)。在我的网站上,有五个函数每 10 秒调用一次。这些函数执行以下操作:

  1. 检查用户的收件箱是否有新邮件
  2. 检查用户帐户是否有新的即时消息
  3. 等等

但是,如果用户已登录,但处于非事件状态(不使用鼠标或按任何键)大约 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 计数等变为空白(而之前它们是整数)。用户所要做的就是刷新页面或转到另一个页面重新连接,所以这没什么大不了的。

我的 hack 解决方案是使用 JavaScript 计时器,如果在 15 分钟内没有发生以下任何事件,则自动注销用户:

  1. 鼠标点击
  2. 鼠标移动
  3. 按键

有没有办法避免这种“无法加载资源”错误的发生?

更新:这似乎发生在用户的设备 sleep /休眠但仍处于登录状态时...当用户重新启动设备时。这是在 Chrome 的 Inspect Element、Firebug 等上可以看到错误消息的时候。

更新 10/02/2014:我现在将五个 setTimeout 函数压缩为一个大的 setTimeout 函数。此外,在名为“combinedfiletimeinput”的输入中保存修改时间的表单已被删除,我现在以不同方式处理文件修改时间。

这是显示错误的 Chrome 开发者工具日志的屏幕截图。我添加了“mysite”来代替我的站点名称,并添加了“文件名”来代替实际文件名。我还删除了外部 JavaScript 文件的名称,剩下的就是 .js(抱歉,但我只是想小心 :))我截掉了一些屏幕截图,这样文本就足够大了阅读。

如您在屏幕截图中所见,前三个请求的请求处理正常。然后我“休眠”了我的设备,然后重新打开了我的设备。这就是接下来的两个请求出错的地方(红色)。在这前两个错误之后,请求再次开始正常处理(黑色文本行,红色文本行之后)。控制台清楚地显示了错误信息。

最佳答案

只是总结我在社区问题下的评论。

经过一些测试,似乎必须为每个调用设置Ajax 超时。如果没有超时,ERR_NETWORK_IO_SUSPENDED、ERR_INTERNET_DISCONNECTED 等 NET::错误将导致 Ajax 停止执行,并且在计算机唤醒后不会恢复。

对于 jQuery:

$.ajax({
   url: yourURL,
   timeout: 4000
});

对于 XMLHttpRequest (XHR):

 xhr.timeout = 4000;

此外,您的脚本需要一个异常处理程序来捕获连接错误,这样您的 JavaScript 代码就不会因为意外的行为/值而崩溃。

即使有超时和异常处理程序,您的应用程序也会抛出 NET::错误,但它们不会损害您的应用程序;您可以将它们视为通知

关于javascript - 加载资源失败:net::ERR_NETWORK_IO_SUSPENDED,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23725085/

有关javascript - 加载资源失败:net::ERR_NETWORK_IO_SUSPENDED的更多相关文章

  1. ruby-on-rails - Ruby net/ldap 模块中的内存泄漏 - 2

    作为我的Rails应用程序的一部分,我编写了一个小导入程序,它从我们的LDAP系统中吸取数据并将其塞入一个用户表中。不幸的是,与LDAP相关的代码在遍历我们的32K用户时泄漏了大量内存,我一直无法弄清楚如何解决这个问题。这个问题似乎在某种程度上与LDAP库有关,因为当我删除对LDAP内容的调用时,内存使用情况会很好地稳定下来。此外,不断增加的对象是Net::BER::BerIdentifiedString和Net::BER::BerIdentifiedArray,它们都是LDAP库的一部分。当我运行导入时,内存使用量最终达到超过1GB的峰值。如果问题存在,我需要找到一些方法来更正我的代

  2. ruby - 如何在续集中重新加载表模式? - 2

    鉴于我有以下迁移:Sequel.migrationdoupdoalter_table:usersdoadd_column:is_admin,:default=>falseend#SequelrunsaDESCRIBEtablestatement,whenthemodelisloaded.#Atthispoint,itdoesnotknowthatusershaveais_adminflag.#Soitfails.@user=User.find(:email=>"admin@fancy-startup.example")@user.is_admin=true@user.save!ende

  3. ruby - 如何模拟 Net::HTTP::Post? - 2

    是的,我知道最好使用webmock,但我想知道如何在RSpec中模拟此方法:defmethod_to_testurl=URI.parseurireq=Net::HTTP::Post.newurl.pathres=Net::HTTP.start(url.host,url.port)do|http|http.requestreq,foo:1endresend这是RSpec:let(:uri){'http://example.com'}specify'HTTPcall'dohttp=mock:httpNet::HTTP.stub!(:start).and_yieldhttphttp.shou

  4. ruby - RuntimeError(自动加载常量 Apps 多线程时检测到循环依赖 - 2

    我收到这个错误:RuntimeError(自动加载常量Apps时检测到循环依赖当我使用多线程时。下面是我的代码。为什么会这样?我尝试多线程的原因是因为我正在编写一个HTML抓取应用程序。对Nokogiri::HTML(open())的调用是一个同步阻塞调用,需要1秒才能返回,我有100,000多个页面要访问,所以我试图运行多个线程来解决这个问题。有更好的方法吗?classToolsController0)app.website=array.join(',')putsapp.websiteelseapp.website="NONE"endapp.saveapps=Apps.order("

  5. ruby - 即使失败也继续进行多主机测试 - 2

    我已经构建了一些serverspec代码来在多个主机上运行一组测试。问题是当任何测试失败时,测试会在当前主机停止。即使测试失败,我也希望它继续在所有主机上运行。Rakefile:namespace:specdotask:all=>hosts.map{|h|'spec:'+h.split('.')[0]}hosts.eachdo|host|begindesc"Runserverspecto#{host}"RSpec::Core::RakeTask.new(host)do|t|ENV['TARGET_HOST']=hostt.pattern="spec/cfengine3/*_spec.r

  6. ruby - 如何验证 IO.copy_stream 是否成功 - 2

    这里有一个很好的答案解释了如何在Ruby中下载文件而不将其加载到内存中:https://stackoverflow.com/a/29743394/4852737require'open-uri'download=open('http://example.com/image.png')IO.copy_stream(download,'~/image.png')我如何验证下载文件的IO.copy_stream调用是否真的成功——这意味着下载的文件与我打算下载的文件完全相同,而不是下载一半的损坏文件?documentation说IO.copy_stream返回它复制的字节数,但是当我还没有下

  7. ruby - 安装 Ruby 时遇到问题(无法下载资源 "readline--patch") - 2

    当我尝试安装Ruby时遇到此错误。我试过查看this和this但无济于事➜~brewinstallrubyWarning:YouareusingOSX10.12.Wedonotprovidesupportforthispre-releaseversion.Youmayencounterbuildfailuresorotherbreakages.Pleasecreatepull-requestsinsteadoffilingissues.==>Installingdependenciesforruby:readline,libyaml,makedepend==>Installingrub

  8. Ruby 文件 IO 定界符? - 2

    我正在尝试解析一个文本文件,该文件每行包含可变数量的单词和数字,如下所示:foo4.500bar3.001.33foobar如何读取由空格而不是换行符分隔的文件?有什么方法可以设置File("file.txt").foreach方法以使用空格而不是换行符作为分隔符? 最佳答案 接受的答案将slurp文件,这可能是大文本文件的问题。更好的解决方案是IO.foreach.它是惯用的,将按字符流式传输文件:File.foreach(filename,""){|string|putsstring}包含“thisisanexample”结果的

  9. ruby-on-rails - 使用 config.threadsafe 时从 lib/加载模块/类的正确方法是什么!选项? - 2

    我一直致力于让我们的Rails2.3.8应用程序在JRuby下正确运行。一切正常,直到我启用config.threadsafe!以实现JRuby提供的并发性。这导致lib/中的模块和类不再自动加载。使用config.threadsafe!启用:$rubyscript/runner-eproduction'pSim::Sim200Provisioner'/Users/amchale/.rvm/gems/jruby-1.5.1@web-services/gems/activesupport-2.3.8/lib/active_support/dependencies.rb:105:in`co

  10. ruby - Net::HTTP 获取源代码和状态 - 2

    我目前正在使用以下方法获取页面的源代码:Net::HTTP.get(URI.parse(page.url))我还想获取HTTP状态,而无需发出第二个请求。有没有办法用另一种方法做到这一点?我一直在查看文档,但似乎找不到我要找的东西。 最佳答案 在我看来,除非您需要一些真正的低级访问或控制,否则最好使用Ruby的内置Open::URI模块:require'open-uri'io=open('http://www.example.org/')#=>#body=io.read[0,50]#=>"["200","OK"]io.base_ur

随机推荐