国产探花免费观看_亚洲丰满少妇自慰呻吟_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程序設計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 玛曲县| 和田市| 闵行区| 象山县| 巴彦县| 桐梓县| 日喀则市| 台前县| 兴海县| 凤阳县| 怀来县| 象州县| 蓬莱市| 田阳县| 玛曲县| 石阡县| 芜湖县| 农安县| 北票市| 石阡县| 抚顺县| 繁昌县| 康定县| 通化市| 泰宁县| 威海市| 盈江县| 大城县| 互助| 常山县| 辽宁省| 新巴尔虎左旗| 通江县| 永川市| 三门峡市| 邹城市| 吉木萨尔县| 青浦区| 开化县| 馆陶县| 金湖县|