国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

Javascript實現網絡監測的方法

2019-11-20 11:57:05
字體:
來源:轉載
供稿:網友

本文實例講述了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程序設計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 上犹县| 济阳县| 讷河市| 大名县| 沙洋县| 穆棱市| 扎兰屯市| 郓城县| 胶南市| 剑阁县| 新余市| 江门市| 彰武县| 十堰市| 建水县| 马关县| 台中市| 赤峰市| 龙门县| 天门市| 黄陵县| 平利县| 南城县| 石屏县| SHOW| 石家庄市| 奇台县| 庆城县| 南靖县| 毕节市| 手机| 汉阴县| 陈巴尔虎旗| 罗平县| 台安县| 仲巴县| 阿尔山市| 锡林郭勒盟| 拜城县| 柳江县| 武功县|