若是 Web 應用程序僅僅是一些靜態頁面的組合,那麼經過 cache manifest 緩存資源文件之後,就能夠支持離線訪問了。可是隨着互聯網的發展,特別是 Web2.0 概念流行以來,用戶的提交的數據漸漸成爲互聯網的主流。那麼在開發支持離線的 Web 應用時,就不能僅僅知足於靜態頁面的展示,還必需考慮如何讓用戶在離線狀態下也能夠操做數據。離線狀態時,把數據存儲在本地;在線之後,再把數據同步到服務器上。爲了作到這一點,開發者首先必須知道瀏覽器是否在線。HTML5 提供了兩種檢測是否在線的方式:navigator.online 和 online/offline 事件。
navigator.onLine
navigator.onLine 屬性表示當前是否在線。若是爲 true, 表示在線;若是爲 false, 表示離線。當網絡狀態發生變化時,navigator.onLine 的值也隨之變化。開發者能夠經過讀取它的值獲取網絡狀態。
online/offline 事件
當開發離線應用時,經過 navigator.onLine 獲取網絡狀態一般是不夠的。開發者還須要在網絡狀態發生變化時馬上獲得通知,所以 HTML5 還提供了 online/offline 事件。當在線 / 離線狀態切換時,online/offline 事件將觸發在 body 元素上,而且沿着 document.body、document 和 window 的順序冒泡。所以,開發者能夠經過監聽它們的 online/offline 事件來獲悉網絡狀態。瀏覽器