html5離線應用

如果 Web 應用能夠提供離線的功能,讓用戶在沒有網絡的地方(例如飛機上)和時候(網絡壞了),也能進行內容撰寫,等到有網絡的時候,再同步到 Web 上,就大大方便了用戶的使用。

瀏覽器在在線狀態時,把這些文件緩存到本地。此後,當用戶離線訪問應用程序時,這些資源文件會自動加載,從而讓用戶正常使用。

開發離線需考慮的三方面步驟:

1.離線資源緩存:需要一種方式來指明應用程序離線工作時所需的資源文件。這樣,瀏覽器才能在在線狀態時,把這些文件緩存到本地。此後,當用戶離線訪問應用程序時,這些資源文件會自動加載,從而讓用戶正常使用。HTML5 中,通過 cache manifest 文件指明需要緩存的資源,並支持自動和手動兩種緩存更新方式。

2.在線狀態檢測:開發者需要知道瀏覽器是否在線,這樣才能夠針對在線或離線的狀態,做出對應的處理。在 HTML5 中,提供了兩種檢測當前網絡是否在線的方式。

3.本地數據存儲:離線時,需要能夠把數據存儲到本地,以便在線時同步到服務器上。爲了滿足不同的存儲需求,HTML5 提供了 DOM Storage 和 Web SQL Database 兩種存儲機制。前者提供了易用的 key/value 對存儲方式,而後者提供了基本的關係數據庫存儲功能。

1.離線資源緩存:to be continued

爲了能夠讓用戶在離線狀態下繼續訪問 Web 應用,開發者需要提供一個 cache manifest 文件。這個文件中列出了所有需要在離線狀態下使用的資源,瀏覽器會把這些資源緩存到本地。


http://www.html5china.com/HTML5features/OfflineApplications/20110926_2035.html


實現離線文件的存儲,只需要三個步驟:1,配置服務器manifest文件的MIME類型;2,編寫manifest文件;3,在頁面的html標籤的manifest屬性中引用寫好的manifest文件。

http://www.html5china.com/HTML5features/OfflineApplications/20110926_2037.html   主要介紹在線和離線判斷,規則等,較詳細

2.在線狀態檢測:

如果 Web 應用程序僅僅是一些靜態頁面的組合,那麼通過 cache manifest 緩存資源文件以後,就可以支持離線訪問了。但是隨着互聯網的發展,特別是 Web2.0 概念流行以來,用戶的提交的數據漸漸成爲互聯網的主流。那麼在開發支持離線的 Web 應用時,就不能僅僅滿足於靜態頁面的展現,還必需考慮如何讓用戶在離線狀態下也可以操作數據。離線狀態時,把數據存儲在本地;在線以後,再把數據同步到服務器上。爲了做到這一點,開發者首先必須知道瀏覽器是否在線。HTML5 提供了兩種檢測是否在線的方式:navigator.online 和 online/offline 事件。

  1. navigator.onLine

    navigator.onLine 屬性表示當前是否在線。如果爲 true, 表示在線;如果爲 false, 表示離線。當網絡狀態發生變化時,navigator.onLine 的值也隨之變化。開發者可以通過讀取它的值獲取網絡狀態。

  2. online/offline 事件

    當開發離線應用時,通過 navigator.onLine 獲取網絡狀態通常是不夠的。開發者還需要在網絡狀態發生變化時立刻得到通知,因此 HTML5 還提供了 online/offline 事件。當在線 / 離線狀態切換時,online/offline 事件將觸發在 body 元素上,並且沿着 document.body、document 和 window 的順序冒泡。因此,開發者可以通過監聽它們的 online/offline 事件來獲悉網絡狀態。

3.本地數據存儲to be continued

在開發支持離線功能的 Web 應用時,開發者需要在本地存儲數據。當前瀏覽器支持的 cookie 雖然也可以用來存儲數據,但是 cookie 長度非常小(通常幾 k),而且功能有限。因此,HTML5 中新引入了 DOM Storage 機制,用於存儲 key/value 對,它的設計目標是提供大規模、安全且易用的存儲功能。

除了 DOM Storage 以外,HTML5 中還有另外一種數據存儲方式 Web SQL Database。它提供了基本的關係數據庫功能,支持頁面上的複雜的、交互式的數據存儲。它既可以用來存儲用戶產生的數據,也可以作爲從服務器獲取數據的本地高速緩存。例如可以把電子郵件、日程等數據存儲到數據庫中。Web SQL Database 支持數據庫事務的概念,從而保證了即使多個瀏覽器窗口操作同一數據,也不會產生衝突。


http://www.html5china.com/HTML5features/OfflineApplications/20110926_2035.html


本地存儲可以存儲5M大小的數據,甚至還可以更多。 它主要有四種:localstorage , sessionstorage, (以上兩類web存儲機制,在不同類型的瀏覽器之中還是不能互相訪問的,比如在Firefox中用localstorage存儲的時候,是不能在IE中去訪問讀取的。)webSQL , indexedDB。

http://www.html5china.com/HTML5features/LocalStorage/20110926_2022.html


本地存儲(DOM Storage)的具體操作:

http://www.html5china.com/HTML5features/LocalStorage/20110926_2052.html

http://www.html5china.com/HTML5features/LocalStorage/20110926_2053.html

http://www.html5china.com/HTML5features/LocalStorage/20110926_2054.html




ASP.NET中使用離線:http://www.html5china.com/HTML5features/OfflineApplications/20110926_2033.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章