如何在 Javascript 中检测网络丢失
How to Detect Network Loss in Javascript?
我的Web应用程序可以在多个手持设备上工作,如iPad Galaxy选项卡等。 应用程序从服务器请求图像并在客户端上呈现。
现在问题有时会发生,在图像渲染过程中网络连接丢失,而不是在设备上显示html无图像图标的时间......
我想优雅地处理这种情况,在网络丢失时,我想捕获它并向用户显示警报,指出没有网络连接或其他东西......
我试图用户navigator.onLine
事件..但它不适用于我支持的所有浏览器集,例如 Mozilla 上的 5-6 版本等。
而且我的应用程序将仅在 wifi 本地网络上运行......可能连接到互联网,也可能没有连接到互联网。在那个适合中,这个navigator.onLine
也起作用..?
请为我提供任何其他更好的方法来做到这一点......
您可以对服务器执行一些 XHR 请求并检查返回的状态。
如果0
,则表示连接丢失。
所以,像这样的东西可以给你一个小小的实用功能:
function isOnline ( callback ) {
var xhr = new XMLHttpRequest( )
xhr.onreadystatechange = function ( ) {
// Make sure the request is finished
if ( xhr.readyState === 4 ) {
// There is the magic
if ( xhr.status === 0 ) {
callback( false )
}
else {
callback( true )
}
}
}
xhr.open( '/some/url' )
xhr.send( )
}
// Usage example:
isOnline( function ( status ) {
if ( status ) {
// You're online
}
else {
// You're not online
}
} )
PS:我跳过了xhr
对象的IE合规性部分,但是添加起来很容易。这更多的是为了得到这个想法。
例如,您可以使用
<img src="..." onerror="noConnection()">
因此,如果未加载图像,将调用noConnection方法。
更多信息在这里: jQuery/JavaScript 替换损坏的图像
相关文章:
- 如何使用密码检测网络中的状态连接
- 检测iPhone网络浏览器的Javascript
- 基于网络音频API的和弦检测算法
- 检测网络应用程序是否已在安卓系统的主屏幕上添加书签
- iOS 强制网络助手网页的 JavaScript 检测
- 检测与流星的3G网络连接
- 如何检测从打开相机返回后网络应用程序的恢复
- 检测浏览器视频播放器中广告的网络调用
- jQuery webcam/flash:如何检测网络摄像头是否处于活动状态
- 如何使用javascript检测实时网络摄像头中的亮度
- 如何在 Javascript 中检测网络丢失
- 检测 Chrome 扩展程序中网络请求的来源
- 是什么原因导致我的网络应用程序在某些Android设备上停滞?我该如何检测
- 检测用户是否正在使用NodeJS访问我的网络(WIFI)
- 检测iOS是否正在使用网络应用程序
- 如何检测设备在网络浏览器中是否有陀螺仪
- 如何在JavaScript中检测是否在Chrome网络视图中加载了页面
- 尝试使用javascript camgaze.js绘制图像,从网络摄像头实时检测人脸-不工作
- 如何在本地网络中检测服务器主机端口?
- Phonegap-检测网络活动