文章出處

這里列舉幾種判斷是否聯網的方法

第一種獲取網絡設置,遍歷屬性,檢查IPv4是否有ip地址

 

 1         //判斷網絡狀態
 2         static judgingAddrInfo() {
 3             var interfaces = require('os').networkInterfaces();
 4             for (var i in interfaces) {
 5                 var ifObj = interfaces[i];
 6                 for (var n = 0; n < ifObj.length; n++) {
 7                     if (ifObj[n].family == 'IPv4' && ifObj[n].address != '127.0.0.1') {
 8                         return true;
 9                     }
10                 }
11             }
12             return false;
13         }

第二種方法:var online = navigator.onLine;  返回瀏覽器的聯網狀態。正常聯網(在線)返回true,不正常聯網(離線)返回false。一旦瀏覽器的聯網狀態發生改變,該屬性值也會隨之變化。

但是這兩種方法在某些情況下不太準確,檢查到聯網狀態時,并不意味著瀏覽器一定能連接上互聯網。還有其他一些可能引起誤判的原因,比如你的電腦安裝了虛擬化軟件,可能會有一個虛擬網卡,這時它總是會顯示正常聯網。因此,如果你想得到瀏覽器確切的聯網狀態,應該使用其他額外的檢查手段。

第三種方法:

通過發起網絡資源請求,如果請求成功則表示網絡連接沒問題,但是這種方法依賴于所請求的資源!

 1                     //通過發起請求                    
 2                     require("request")
 3                         .get('http://www.baidu.com')
 4                         .on('response', function (response) {
 5                         console.log(response.statusCode) // 200
 6                     })
 7     
 8                      或者
 9                     //通過請求資源
10                     var i = <HTMLImageElement>document.createElement("IMG");
11                     i.onload = function () {
12                         console.log("load")
13                         callBack(true);
14                     };
15                     i.onerror = function () {
16                         console.log("err")
17                         callBack(false);
18                     };
19                     i.src = 'https://ss0.bdstatic.com/5aV1bjqh_Q23odCf/static/superman/img/logo/bd_logo1_31bdc765.png?id=' + Date.now();                

 


文章列表


不含病毒。www.avast.com
arrow
arrow
    全站熱搜
    創作者介紹
    創作者 大師兄 的頭像
    大師兄

    IT工程師數位筆記本

    大師兄 發表在 痞客邦 留言(0) 人氣()