有關移動Web離線應用

來源:文萃谷 1.68W

先決條件

有關移動Web離線應用

在本文中,您將使用最新 Web 技術開發 Web 應用程序。這裏的大多數代碼只是 HTML、JavaScript 和 CSS — 任何 Web 開發人員的核心技術。需要的最重要的東西是用於測試代碼的瀏覽器。本文中的大多數代碼將運行在最新的桌面瀏覽器上,例外的情況會指出來。當然,還必須在移動瀏覽器上進行測試,您肯定希望最新的 iPhone 和 Android SDK 支持這些代碼。本文中使用的是 iPhone SDK 3.1.3 和 Android SDK 2.1。

為何要支持您的應用程序離線工作?

由於幾個原因,離線 Web 應用程序對於用户和開發人員都有吸引力。許多開發人員希望能夠編寫一個能夠在所有最流行的智能手機上運行的 Web 應用程序,而不是為每個平台編寫本機應用程序。這對開發人員很方便,但並不意味這這是用户的願望。為實現上述目標,移動 Web 應用程序必須能夠提供本機移動應用程序能夠提供的許多(或絕大部分)相同的特性。離線工作肯定是其中一個特性。有些應用程序非常依賴來自 Internet 的`數據和服務 — 不管它們是移動 Web 還是本機應用程序。但是,應用程序不能僅僅因為用户的連接不好而完全失敗。但這正是傳統 Web 應用程序的癥結所在。

離線功能使移動 Web 應用程序類似於本機應用程序。此外,離線功能還有其他好處。Web 瀏覽器總是緩存靜態資源。它們依賴通過您的 Web 服務器發送的 HTTP 響應頭部中的元數據來檢索渲染頁面所需的 HTML、JavaScript、CSS 和圖像。如果渲染頁面所需的所有資源都已緩存,那麼頁面就可以非常迅速地加載。但是,如果某個資源沒有緩存,那麼它將極大地降低頁面載入速度。這種情況經常發生,實在是讓人無法忍受。也許一個 CSS 文件擁有一個與其他所有文件都不同的 Cache-Control 頭部,或者,也許是瀏覽器因為耗盡了已分配空間而無法緩存。

使用離線應用程序,您可以確保所有資源都會被緩存。瀏覽器將總是從緩存加載所有資源,儘管您也能夠控制哪些資源從緩存加載。一種常見的 Ajax 技巧是將一個額外的時間戳參數添加到 AjaxGET請求(或者,更糟糕的是在應該使用GET時使用POST)來避免瀏覽器緩存一個響應。您無需使用這種技巧來支持離線 Web 應用程序。

離線應用程序聽起來挺棒,那麼創建一個離線應用程序一定很複雜,對吧?實際上,創建方法非常簡單,只需完成下面三個步驟:

創建一個在線清單文件。

告知瀏覽器這個清單文件。

設置服務器上的 MIME 類型。

熱門標籤