您好,登錄后才能下訂單哦!
這篇文章主要介紹如何使用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è)資訊頻道!
免責聲明:本站發(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)容。