1. navigator.onLine
通過navigator.onLine判斷當前網絡狀態:
1 |
if(navigator.onLine){ |
非常簡單,但是並不准確-根據MDN的描述:
navigator.onLine只會在機器未連接到局域網或路由器時返回false,其他情況下均返回true。
也就是說,機器連接上路由器后,即使這個路由器沒聯通網絡,navigator.onLine仍然返回true。
2. ajax請求
采用get請求的方式,根據返回值判斷是否能夠成功get到數據,從而確定當前的網絡狀態:
1 |
$.ajax({ |
3. 獲取網絡資源
原理同2,在頁面放一張隱藏圖片,設置其onerror函數(獲取圖片資源失敗時會調用該函數):
1 |
<script src="./jquery-3.1.1.min.js"></script> |
每次點擊button時,更新該圖片的src。若獲取圖片失敗,則認為網絡連接失敗。
PS: 三種方法都不是很理想,但暫時尚未找到更好的解決方案。