本文摘自PHP中文网,作者藏色散人,侵删。
javascript检测网络的方法:1、通过navigator去检测网络;2、 使用“window.ononline”和“window.onoffline”事件监听浏览器的联网状态;3、通过ajax请求检测网络。
本文操作环境:windows7系统、javascript1.8.5版,DELL G3电脑
JavaScript 判断网络状态
一、一般来说,判断网络状态都是用的 HTML5 提供的 navigator 去检测网络
1 2 3 4 | <script type= "text/javascript" >
alert(window.navigator.onLine);
</script>
|
二、想要监听浏览器的联网状态, 使用window.ononline和window.onoffline事件:
1 2 3 4 | <script type= "text/javascript" >
window.addEventListener( "offline" , function (){alert( "网络连接恢复" );})
window.addEventListener( "online" , function (){alert( "网络连接中断" );})
</script>
|
或者:
1 2 3 4 | <script type= "text/javascript" >
window.ononline= function (){alert( "网络连接恢复" );}
window.onoffline= function (){alert( "网络连接中断" );}
</script>
|
注意:此方法属于 “侦听器”,在网络连接 / 断开的一瞬间,才会触发。
总结:navigator.onLine
和online
、offline
事件却不是万能的,在 PC 端时只能判断无线和网线是否连接,而不能判断是否有网络、是否可以上网。
更为安全的做法:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | <script type= "text/javascript" >
var el = document.body;
if (el.addEventListener) {
window.addEventListener( "online" , function () {
alert( "网络连接恢复" );}, true );
window.addEventListener( "offline" , function () {
alert( "网络连接中断" );}, true );
}
else if (el.attachEvent) {
window.attachEvent( "ononline" , function () {
alert( "网络连接恢复" );});
window.attachEvent( "onoffline" , function () {
alert( "网络连接中断" );});
}
else {
window.ononline = function () {
alert( "网络连接恢复" );};
window.onoffline = function () {
alert( "网络连接中断" );};
}
</script>
|
注意,检测 ononline 事件,要绑定在 window 对象上
attachEvent ―― 兼容:IE7、IE8;不兼容 firefox、chrome、IE9、IE10、IE11、safari、opera
addEventListener ―― 兼容:firefox、chrome、IE、safari、opera;不兼容 IE7、IE8
推荐学习:《javascript高级教程》
三、可以发起 ajax 请求,根据请求结果判断网络的通断
1 2 3 4 5 6 7 8 9 10 11 12 | <script type= "text/javascript" >
$.ajax({
url: 'https://sug.so.360.cn/suggest' ,
dataType: 'jsonp' ,
success: function (result){
console.log( '网络正常' )
},
error: function (result){
console.log( '网络异常' )
}
});
</script>
|
当然这种方法也不是很完美,而且不是很实用,无法很好的区分是服务器出现故障还是用户的网络有问题,但是这确实最有效的方式。
以上就是javascript如何检测网络的详细内容,更多文章请关注木庄网络博客!
相关阅读 >>
javascript字符串转换成utf-8编码方式有哪些
如何中断foreach循环(详细介绍)
javascript怎么获取元素并删除
详解使用 set 来提高js代码性能的方法
vue.js的ul-li标签仿select标签
javascript怎么将数字转换成时间
javascript怎么累加
怎么用js获取年月日
javascript窗口如何关闭
用javascript获取伪元素(pseudo-element)属性的方法详解
更多相关阅读请进入《javascript》频道 >>
人民邮电出版社
本书对 Vue.js 3 技术细节的分析非常可靠,对于需要深入理解 Vue.js 3 的用户会有很大的帮助。——尤雨溪,Vue.js作者
转载请注明出处:木庄网络博客 » javascript如何检测网络