溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

如何使用JS在瀏覽器中判斷當前網(wǎng)絡(luò)連接狀態(tài)

發(fā)布時間:2021-08-05 11:20:20 來源:億速云 閱讀:284 作者:小新 欄目:web開發(fā)

這篇文章主要介紹如何使用JS在瀏覽器中判斷當前網(wǎng)絡(luò)連接狀態(tài),文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

使用JS在瀏覽器中判斷當前網(wǎng)絡(luò)狀態(tài)的幾種方法如下:

1. navigator.onLine

2. ajax請求

3. 獲取網(wǎng)絡(luò)資源

4. bind()

1. navigator.onLine

通過navigator.onLine判斷當前網(wǎng)絡(luò)狀態(tài):

if(navigator.onLine){
 ...
}else{
 ...
}

非常簡單,但是并不準確-根據(jù)MDN的描述:

navigator.onLine只會在機器未連接到局域網(wǎng)或路由器時返回false,其他情況下均返回true。

也就是說,機器連接上路由器后,即使這個路由器沒聯(lián)通網(wǎng)絡(luò),navigator.onLine仍然返回true。

2. ajax請求

采用get請求的方式,根據(jù)返回值判斷是否能夠成功get到數(shù)據(jù),從而確定當前的網(wǎng)絡(luò)狀態(tài):

$.ajax({
 url: 'x.html',
 success: function(result){
  ...
 }, 
 error: function(result){
  ...
 }
});

3. 獲取網(wǎng)絡(luò)資源

原理同2,在頁面放一張隱藏圖片,設(shè)置其onerror函數(shù)(獲取圖片資源失敗時會調(diào)用該函數(shù)):

<script src="./jquery-3.1.1.min.js"></script>
<script>
function getImgError(){
 alert("Network disconnect!");
}
$().ready(function(){
 $("#btn-test").click(function(){
  var imgPath = "https://cache.yisu.com/upload/information/20200622/114/74531.png";
  var timeStamp = Date.parse(new Date());
  $("#img-test").attr("src", imgPath + "?timestamp=" + timeStamp);
 });
});
</script>
<body>
 <img id="img-test"  onerror="getImgError()"/>
 <button id="btn-test">check status</button>
</body>

每次點擊button時,更新該圖片的src。若獲取圖片失敗,則認為網(wǎng)絡(luò)連接失敗

這種判斷網(wǎng)絡(luò)狀態(tài)的準確完全取決于圖片資源是否穩(wěn)定。。。

4. bind()

原理同1:

var netStatue = true;
$(window).bind('online', function(){
 netStatue = true;
});
$(window).bind('offline', function(){
 netStatue = false;
});
...
if(netStatue){
 ...
}else{
 ...
}

以上是“如何使用JS在瀏覽器中判斷當前網(wǎng)絡(luò)連接狀態(tài)”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對大家有幫助,更多相關(guān)知識,歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI