您好,登錄后才能下訂單哦!
這篇文章主要介紹如何使用JS在瀏覽器中判斷當前網絡連接狀態,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!
使用JS在瀏覽器中判斷當前網絡狀態的幾種方法如下:
1. navigator.onLine
2. ajax請求
3. 獲取網絡資源
4. bind()
1. navigator.onLine
通過navigator.onLine判斷當前網絡狀態:
if(navigator.onLine){ ... }else{ ... }
非常簡單,但是并不準確-根據MDN的描述:
navigator.onLine只會在機器未連接到局域網或路由器時返回false,其他情況下均返回true。
也就是說,機器連接上路由器后,即使這個路由器沒聯通網絡,navigator.onLine仍然返回true。
2. ajax請求
采用get請求的方式,根據返回值判斷是否能夠成功get到數據,從而確定當前的網絡狀態:
$.ajax({ url: 'x.html', success: function(result){ ... }, error: function(result){ ... } });
3. 獲取網絡資源
原理同2,在頁面放一張隱藏圖片,設置其onerror函數(獲取圖片資源失敗時會調用該函數):
<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。若獲取圖片失敗,則認為網絡連接失敗
這種判斷網絡狀態的準確完全取決于圖片資源是否穩定。。。
4. bind()
原理同1:
var netStatue = true; $(window).bind('online', function(){ netStatue = true; }); $(window).bind('offline', function(){ netStatue = false; }); ... if(netStatue){ ... }else{ ... }
以上是“如何使用JS在瀏覽器中判斷當前網絡連接狀態”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。