軟件包內(nèi)的文件是根據(jù)一個(gè)被稱為緩存清單( cache manifest)的文本文件來發(fā)布的。清單文件的第一行必須是CACHE MANIFEST,隨后是所有需要被下載到設(shè)備上的資源的URL 列表,URL 可以是相對(duì)路徑或者絕對(duì)路徑。軟件包內(nèi)的HTML 首頁是默認(rèn)的,并不需要在清單內(nèi)聲明。清單中列舉的文件是否存放在同一服務(wù)器上并不重要。也就是說,我們完全可以引用jQuery Mobile CDN( 內(nèi)容分發(fā)網(wǎng)絡(luò)) 上面的框架文件。可以在行首使用# 做行注釋。安裝時(shí),清單上的任一文件下載失敗都會(huì)導(dǎo)致軟件包無效。這意味著如果將資源部署在第三方服務(wù)器上,應(yīng)用安裝會(huì)依賴第三方服務(wù)器。
舉例來說,一個(gè)典型的只包含一個(gè) HTML 文檔(沒有外部頁面)的 jQuery Mobile應(yīng)用清單看起來應(yīng)該是這樣的:
CACHE MANIFEST:
jQuery 核心文件
http://code.jquery.com/jquery-1.6.1.min.js
沒有自定義主題的 jQuery Mobile 文件
http://code.jquery.com/mobile/1.0/jquery.mobile-1.0.min.css
http://code.jquery.com/mobile/1.0/jquery.mobile-1.0.min.js
http://code.jquery.com/mobile/1.0/images/ajax-loader.png
http://code.jquery.com/mobile/1.0/images/icons-18-black.png
http://code.jquery.com/mobile/1.0/images/icons-18-white.png
http://code.jquery.com/mobile/1.0/images/icons-36-black.png
http://code.jquery.com/mobile/1.0/images/icons-36-white.png
Web 應(yīng)用自定義的文件,路徑是相對(duì)于 HTML 文檔的地址
images/logo.png
data/countries.json
清單文件的名字通常叫 offline.appcache,并且只有以text/cache-manifest 的MIME 類型提供給客戶端才能生效。如果不知道如何設(shè)置MIME 類型,你應(yīng)該聯(lián)系服務(wù)器管理員。如果服務(wù)器支持PHP,那么只需要把文件的擴(kuò)展名改成.php,然后使用下面這個(gè)模
版,不需要其他特殊配置就能生效了:
<?php header('Content-Type: text/cache-manifest');
?>CACHE MANIFEST:
下一步需要在 HTML 文件中定義清單文件的URL, 這是通過設(shè)置 html 元素的manifest 屬性來完成的,這也是HTML5 新引入的一個(gè)屬性。
<html manifest="offline.appcache">
<-- 應(yīng)用的正文 -->
</html>