分类分类
更新时间:2026-05-10 23:55:50作者:fang
本文实例讲述了Javascript实现网络监测的方法。分享给大家供大家参考。具体实现方法如下:
该代码可监测网络是否连接及网速的快慢状态。
(function(){
var network = function(){
var monitor = this;
/**
* @param {Funcation} speedInterval
*/
var speedInterval = null;
/**
* @param {Function} networkInterval
*/
var networkInterval = null;
/**
* @param {Function} reNetworkInterval
*/
var reNetworkInterval = null;
var time = 5000;
/**
* 获取网络连接状态
*/
var getConnectState = function(){
return navigator.onLine ? 1 : 0;
};
/**
* 网络中断
*/
var disconnect = function(){
// TODO ...
console.log("网速中断");
window.clearInterval(reNetworkInterval);
reNetworkInterval = null;
endSpeed();
endNetwork();
window.setTimeout(function(){
reNetworkInterval = window.setInterval(function(){
if (getConnectState() == 1) {
window.clearInterval(reNetworkInterval);
reNetworkInterval = null;
startSpeed();
startNetwork();
} else {
window.clearInterval(reNetworkInterval);
reNetworkInterval = null;
disconnect();
}
}, time);
}, 2 * time);
};
/**
* 网络速度
*/
var speed = {
/**
* 网速过慢
*/
bad : function(){
// TODO ...
console.log("网速过慢");
window.setTimeout(function(){
if(getConnectState() == 1) {
window.clearInterval(networkInterval);
networkInterval = null;
startSpeed();
} else {
disconnect();
}
}, 2 * time);
},
/**
* 网速中等
*/
medium : function(){
// TODO ...
console.log("网速中等");
},
/**
* 网速极佳
*/
great : function(){
// TODO ...
console.log("网速极佳");
}
};
/**
* 开启速度监测
* @private
*/
var startSpeed = function(){
window.clearInterval(speedInterval);
speedInterval = null;
if(getConnectState() == 1) {
speedInterval = window.setInterval(function(){
var start = new Date().getTime();
if (getConnectState() == 1) {
var img = document.getElementById("networkSpeedImage");
if (!!!img) {
img = document.createElement("IMG");
img.id = "networkSpeedImage";
img.style.display = "none";
document.body.appendChild(img);
}
try {
img.src = "http://www.baidu.com/img/baidu_jgylogo3.gif?_t=" + new Date().getTime();
img.onload = function(){
var end = new Date().getTime();
var delta = end - start;
if (delta > 200) {
speed.bad();
} else if (delta > 100) {
speed.medium();
} else {
speed.great();
}
};
} catch(e){
speed.bad();
}
} else {
// TODO 网络断开
disconnect();
}
}, time);
}else {
// TODO 网络断开
disconnect();
}
};
/**
* 停止速度监测
* @private
*/
var endSpeed = function(){
window.clearInterval(speedInterval);
speedInterval = null;
};
/**
* 开启网络连接监测
* @private
*/
var startNetwork = function(){
if (getConnectState() == 1) {
networkInterval = window.setInterval(function(){
if (getConnectState() == 0) {
disconnect();
}
}, time);
} else{
disconnect();
}
};
/**
* 结束网络连接监测
* @private
*/
var endNetwork = function(){
window.clearInterval(networkInterval);
networkInterval = null;
};
/**
* 网络监控开始
*/
this.start = function(){
startNetwork();
startSpeed();
};
/**
* 停止网络监控
*/
this.stop = function(){
endSpeed();
endNetwork();
};
};
window.network = new network();
}).call(this);
// 调用的时候,直接调用network.start();
希望本文所述对大家的javascript程序设计有所帮助。
相关
修真情缘角色扮演303.33 MBv1.0.02026-05-10
下载我的小独角兽女孩休闲益智380.89 MBv1.0.232026-05-10
下载超级种田男孩手机版经营养成1.31Gv1.0.92026-05-10
下载不必要的实验冒险游戏64.9 MBv1.1.592026-05-10
下载军师联盟策略游戏163.2 MBv0.0.12026-05-10
下载翻天喜地凑大钱手机版休闲益智138.72 MBv1.0.92026-05-10
下载东离剑游纪手游动作射击1.6Gv1.4.22026-05-10
下载天猫养车商家版App学习办公74.95 MBv0.6.12026-05-10
下载掌上命运方舟App手游辅助137.48 MBv1.9.12026-05-10
下载退役军人服务APP生活服务67.16 MBv1.2.52026-05-10
下载屯漫漫画APP资讯阅读23.06 MBv2.0.32026-05-10
下载蛋仔派对蛋壳App手游辅助185.73 MBv0.0.22026-05-10
下载









