- 相關(guān)推薦
有關(guān)移動(dòng)Web離線應(yīng)用
先決條件
在本文中,您將使用最新 Web 技術(shù)開(kāi)發(fā) Web 應(yīng)用程序。這里的大多數(shù)代碼只是 HTML、JavaScript 和 CSS — 任何 Web 開(kāi)發(fā)人員的核心技術(shù)。需要的最重要的東西是用于測(cè)試代碼的瀏覽器。本文中的大多數(shù)代碼將運(yùn)行在最新的桌面瀏覽器上,例外的情況會(huì)指出來(lái)。當(dāng)然,還必須在移動(dòng)瀏覽器上進(jìn)行測(cè)試,您肯定希望最新的 iPhone 和 Android SDK 支持這些代碼。本文中使用的是 iPhone SDK 3.1.3 和 Android SDK 2.1。
為何要支持您的應(yīng)用程序離線工作?
由于幾個(gè)原因,離線 Web 應(yīng)用程序?qū)τ谟脩艉烷_(kāi)發(fā)人員都有吸引力。許多開(kāi)發(fā)人員希望能夠編寫(xiě)一個(gè)能夠在所有最流行的智能手機(jī)上運(yùn)行的 Web 應(yīng)用程序,而不是為每個(gè)平臺(tái)編寫(xiě)本機(jī)應(yīng)用程序。這對(duì)開(kāi)發(fā)人員很方便,但并不意味這這是用戶的愿望。為實(shí)現(xiàn)上述目標(biāo),移動(dòng) Web 應(yīng)用程序必須能夠提供本機(jī)移動(dòng)應(yīng)用程序能夠提供的許多(或絕大部分)相同的特性。離線工作肯定是其中一個(gè)特性。有些應(yīng)用程序非常依賴來(lái)自 Internet 的數(shù)據(jù)和服務(wù) — 不管它們是移動(dòng) Web 還是本機(jī)應(yīng)用程序。但是,應(yīng)用程序不能僅僅因?yàn)橛脩舻倪B接不好而完全失敗。但這正是傳統(tǒng) Web 應(yīng)用程序的癥結(jié)所在。
離線功能使移動(dòng) Web 應(yīng)用程序類(lèi)似于本機(jī)應(yīng)用程序。此外,離線功能還有其他好處。Web 瀏覽器總是緩存靜態(tài)資源。它們依賴通過(guò)您的 Web 服務(wù)器發(fā)送的 HTTP 響應(yīng)頭部中的元數(shù)據(jù)來(lái)檢索渲染頁(yè)面所需的 HTML、JavaScript、CSS 和圖像。如果渲染頁(yè)面所需的所有資源都已緩存,那么頁(yè)面就可以非常迅速地加載。但是,如果某個(gè)資源沒(méi)有緩存,那么它將極大地降低頁(yè)面載入速度。這種情況經(jīng)常發(fā)生,實(shí)在是讓人無(wú)法忍受。也許一個(gè) CSS 文件擁有一個(gè)與其他所有文件都不同的 Cache-Control 頭部,或者,也許是瀏覽器因?yàn)楹谋M了已分配空間而無(wú)法緩存。
使用離線應(yīng)用程序,您可以確保所有資源都會(huì)被緩存。瀏覽器將總是從緩存加載所有資源,盡管您也能夠控制哪些資源從緩存加載。一種常見(jiàn)的 Ajax 技巧是將一個(gè)額外的時(shí)間戳參數(shù)添加到 AjaxGET請(qǐng)求(或者,更糟糕的是在應(yīng)該使用GET時(shí)使用POST)來(lái)避免瀏覽器緩存一個(gè)響應(yīng)。您無(wú)需使用這種技巧來(lái)支持離線 Web 應(yīng)用程序。
離線應(yīng)用程序聽(tīng)起來(lái)挺棒,那么創(chuàng)建一個(gè)離線應(yīng)用程序一定很復(fù)雜,對(duì)吧?實(shí)際上,創(chuàng)建方法非常簡(jiǎn)單,只需完成下面三個(gè)步驟:
創(chuàng)建一個(gè)在線清單文件。
告知瀏覽器這個(gè)清單文件。
設(shè)置服務(wù)器上的 MIME 類(lèi)型。
【移動(dòng)Web離線應(yīng)用】相關(guān)文章:
Web Workers加速移動(dòng)Web應(yīng)用07-01
WEB教程標(biāo)準(zhǔn)應(yīng)用標(biāo)簽10-19
Web Service的開(kāi)發(fā)與應(yīng)用基礎(chǔ)07-12
web瀏覽創(chuàng)作效果精選08-01
Web開(kāi)發(fā)的教程圖解06-05
4G移動(dòng)網(wǎng)絡(luò)技術(shù)的特點(diǎn)及應(yīng)用10-25
四種HTML5移動(dòng)應(yīng)用框架的比較10-16
集成spring與Web容器教程10-21