如何在JavaScript中检测Internet连接是否离线?
您可以通过发出 失败的XHR请求 来确定连接丢失。
标准方法是 重试 几次 请求 。如果未通过,请 警告用户 检查连接,然后 正常失败 。
旁注:
将整个应用程序置于“脱机”状态可能会导致很多容易出错的状态处理工作。无线连接可能会来去去等等。因此,最好的选择是妥善地失败,保留数据,并警告用户..允许他们最终解决连接问题(如果有的话),并在相当多的宽恕下继续使用您的应用。
旁注:
您可以检查像google这样的可靠网站的连通性,但这可能并不完全有用,因为它只是尝试提出自己的请求,因为虽然Google可能可用,但您自己的应用程序可能无法使用,并且您仍将继续必须处理您自己的连接问题。尝试向Google发送ping通知是确认互联网连接本身已关闭的好方法,因此,如果该信息对您有用,那么麻烦就值得了。
旁注 : 发送Ping的方式
可以与您发出任何双向双向Ajax请求的方式相同,但是在这种情况下,向Google发送Ping会带来一些挑战。首先,我们将遇到与进行Ajax通信时通常遇到的相同的跨域问题。一种选择是设置服务器端代理,我们实际上在其中ping
搜索Google(或任何站点),然后将ping结果返回给应用程序。这是一个
陷阱22
因为如果实际上是Internet连接,我们将无法连接到服务器,并且如果连接问题仅在我们自己的域上,我们将无法分辨出差异。可以尝试其他跨域技术,例如,在您的网页中嵌入一个指向google.com的iframe,然后对iframe进行轮询以检查成功/失败(检查内容等)。嵌入图像可能并不能真正告诉我们任何信息,因为我们需要通信机制做出有用的回应才能得出正确的结论。因此,再次确定整个互联网连接的状态可能比其价值更大。您必须为您的特定应用权衡这些选项。
问题内容: 如何在JavaScript中检测Internet连接是否离线? 问题答案: 您可以通过发出 失败的XHR请求 来确定连接丢失。 标准方法是 重试 几次 请求 。如果没有通过,请 警告用户 检查连接,然后 正常失败 。 旁注: 将整个应用程序置于“脱机”状态可能会导致很多容易出错的状态处理工作。无线连接可能会来去去等等。因此,最好的选择是妥善地失败,保留数据,并警告用户..允许他们最终解
问题内容: 如何使用Javascript检查互联网连接?这样,我可以有一些条件说“在生产过程中使用Google缓存的JQuery版本,在开发过程中使用该版本或本地版本,具体取决于Internet连接”。 问题答案: 针对您的特定情况的最佳选择可能是: 在您的结束标记之前: 鉴于您的问题集中在jQuery上,这可能是最简单的方法。 如果您想要一个更强大的解决方案,可以尝试: 阅读有关W3C在脱机We
我希望代码检查互联网连接,直到连接可用。如果互联网断开,我不希望执行停止。 关于堆栈溢出,很少有检查internet连接的解决方案,但是如果我使用这些解决方案,一段时间后我会得到堆栈溢出错误。 我从以下函数调用该方法: MessagingException:没有路由到主机:Connect;嵌套异常为:java.net.norouteToHostException:没有到主机的路由:连接在com.s
问题内容: 在我的Java应用程序中,如何检测Internet连接速度有多快?例如,我在家中使用AT&T Fast DSL,我想知道是否有一种方法可以编写执行以下操作的方法: 它将返回以kbps为单位的数字,例如2800kbps [2.8 M] 编辑:我要问的原因是在我的应用程序中,我可以打开多个Internet流,具体取决于用户的Internet连接速度,我希望它自动确定要打开多少个流而不会中断
; ConnectInternet (使用 Dialer 插件) ; Written by Joost Verburg ; ; 当没有可用连接时该函数尝试去创建一个因特网连接。 ; 如果你不能确认使用该安装程序前已有可用的连接的话 ; 在用 NSISdl 插件下载前最好先调用这个函数。 ; ; 这个函数需要 Internet Explorer 3。 ; 如果 IE3
当我试着检查我的iPhone上的互联网连接时,我得到了一堆错误。有谁能帮我修好这个吗? 代码: 代码中的错误: 如果无法读取,则错误1表示: “int”不能转换为“scNetworkReachabilityFlags” 错误2&3: 找不到接受所提供参数的“init”的重载