這兩年離線瀏覽技術(shù)越來越流行,最常見的就是HTML5移動應(yīng)用里,有很多普通的Web app也使用了這些技術(shù)。但是,新技術(shù)的出現(xiàn)有時會給我們WEB開發(fā)人員帶領(lǐng)額外的苦惱,比如,如何判斷用戶現(xiàn)在是在線還是離線?幸好,有矛就有盾,JavaScript里的navigator
對象幫我們解決這個問題。
相關(guān)學(xué)習(xí)推薦:javascript視頻教程
navigator.onLine
navigator.onLine
屬性能給我們提供一個布爾值,用來判斷用戶是否連接了互聯(lián)網(wǎng)。你可以這樣訪問它:
if(navigator.onLine) { // true|false // ... }
沒有比這更簡單的了!
事件
我們除了能檢測這個離線/在線屬性值外,還可以綁定offline
和 online
事件:
function updateIndicator() { // 這時可以根據(jù)offline/online按鈕的顏色 } // 根據(jù)網(wǎng)絡(luò)連接情況更新在線狀態(tài) window.addEventListener('online', updateIndicator); window.addEventListener('offline', updateIndicator); updateIndicator();
當(dāng)然,老式的技術(shù)里也提供了相應(yīng)的方法,在body
標(biāo)記上使用ononline
和 onoffline
方法。
我可以想象到很多地方都需要使用這些事件和屬性。比如一種情況,當(dāng)用戶正在工作時,斷網(wǎng)了,如果我們的WEB應(yīng)用可以檢測出這種狀態(tài),可以將用戶的寫作保持到本地的Web Storage里,等網(wǎng)絡(luò)恢復(fù)后,再提交到服務(wù)器上,這樣,斷網(wǎng)將不會給用戶的寫作帶來影響。這只是一個簡單的例子,相信你能想出