文章出處
文章列表
這里列舉幾種判斷是否聯網的方法
第一種獲取網絡設置,遍歷屬性,檢查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();
文章列表
全站熱搜