最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Javascript實現(xiàn)網(wǎng)絡(luò)監(jiān)測的方法

 更新時間:2015年07月31日 11:42:11   作者:JUNQIANGWEI  
這篇文章主要介紹了Javascript實現(xiàn)網(wǎng)絡(luò)監(jiān)測的方法,可實現(xiàn)檢測網(wǎng)絡(luò)連接及網(wǎng)速的相關(guān)技巧,具有一定參考借鑒價值,需要的朋友可以參考下

本文實例講述了Javascript實現(xiàn)網(wǎng)絡(luò)監(jiān)測的方法。分享給大家供大家參考。具體實現(xiàn)方法如下:

該代碼可監(jiān)測網(wǎng)絡(luò)是否連接及網(wǎng)速的快慢狀態(tài)。

(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;
 /**
  * 獲取網(wǎng)絡(luò)連接狀態(tài)
  */
 var getConnectState = function(){
  return navigator.onLine ? 1 : 0;
 }; 
 /**
  * 網(wǎng)絡(luò)中斷
  */
 var disconnect = function(){
  // TODO ... 
  console.log("網(wǎng)速中斷");
  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);
 };
 /**
  * 網(wǎng)絡(luò)速度
  */
 var speed = {
   /**
    * 網(wǎng)速過慢
    */
   bad : function(){
    // TODO ... 
    console.log("網(wǎng)速過慢");
    window.setTimeout(function(){
     if(getConnectState() == 1) {
      window.clearInterval(networkInterval);
      networkInterval = null;
      startSpeed();
     } else {
      disconnect();
     }
    }, 2 * time);
   },
   /**
    * 網(wǎng)速中等
    */
   medium : function(){
    // TODO ... 
    console.log("網(wǎng)速中等");
   },
   /**
    * 網(wǎng)速極佳
    */
   great : function(){
    // TODO ... 
    console.log("網(wǎng)速極佳");
   }
 };
 /**
  * 開啟速度監(jiān)測
  * @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 網(wǎng)絡(luò)斷開
     disconnect();
    }
   }, time);
  }else {
   // TODO 網(wǎng)絡(luò)斷開
   disconnect();
  }
 };
 /**
  * 停止速度監(jiān)測
  * @private
  */
 var endSpeed = function(){
  window.clearInterval(speedInterval);
  speedInterval = null;
 };
 /**
  * 開啟網(wǎng)絡(luò)連接監(jiān)測
  * @private
  */
 var startNetwork = function(){
  if (getConnectState() == 1) {
   networkInterval = window.setInterval(function(){
    if (getConnectState() == 0) {
     disconnect();
    }
   }, time);
  } else{
   disconnect();
  }
 };
 /**
  * 結(jié)束網(wǎng)絡(luò)連接監(jiān)測
  * @private 
  */
 var endNetwork = function(){
  window.clearInterval(networkInterval);
  networkInterval = null;
 };
 /**
  * 網(wǎng)絡(luò)監(jiān)控開始
  */
 this.start = function(){
  startNetwork();
  startSpeed();
 };
 /**
  * 停止網(wǎng)絡(luò)監(jiān)控
  */
 this.stop = function(){
  endSpeed();
  endNetwork();
 };
};
  window.network = new network();
}).call(this);
// 調(diào)用的時候,直接調(diào)用network.start();

希望本文所述對大家的javascript程序設(shè)計有所幫助。

相關(guān)文章

最新評論

江口县| 城市| 钦州市| 青海省| 温泉县| 得荣县| 巨野县| 冀州市| 山西省| 土默特左旗| 仙居县| 阳谷县| 灵川县| 翼城县| 安宁市| 嘉黎县| 宜都市| 凌云县| 霍林郭勒市| 昭平县| 卢湾区| 德惠市| 英德市| 福建省| 萨嘎县| 化德县| 安图县| 石嘴山市| 遵义市| 始兴县| 大田县| 信宜市| 兴海县| 尤溪县| 德州市| 湟源县| 应用必备| 荣成市| 内黄县| 白河县| 浪卡子县|