HTML5 Application Cache - manifest

manifest 文件

要向使用application cache 須要爲頁面的html標籤添加manifest屬性,屬性值是manifest文件路徑,能夠使用同源的絕對地址,也能夠使用相對地址。css

<!doctype html>
<html lang="zh" manifest="main.manifest">
</html>

 

application cache是經過mannifest文件來管理的,manifest文件是簡單的文本文件,內容是須要被緩存供離線使用的文件列表,及不須要被緩存或讀取緩存失敗的文件控制。mannifest文件能夠使用任意拓展名,但須要在服務器中添加MIME類型匹配,使用apache比較簡單,若是使用.manifest做爲拓展名在apache配置文件中添加html

AddType text/cache-manifest .appcache

 

使用IIS的話經過界面找到添加MIME窗口添加便可jquery

如何配置

下面是一個manifest文件的示例apache

main.manifest瀏覽器

複製代碼
 1 CACHE MANIFEST
 2 #version 0.2.0
 3 #date: Nov 24 2013
 4 
 5 CACHE:
 6 css/reset.css
 7 css/main.css
 8 js/jquery.js
 9 images/bg.png
10 images/bg_hl.jpg
11 images/icons/yes.png
12 images/icons/top.png
13 offline.html
14 
15 NETWORK:
16 *
17 
18 FALLBACK:
19 index.html offline.html
複製代碼

 

1. 文件的第一行必須是 CACHE MANIFEST緩存

2. #開頭的行做爲註釋語句,因此文件中關於版本和日期都是註釋,爲了方便維護服務器

3. 網站的緩存不能超過5M網絡

4. 文件資源路徑能夠使用絕對路徑也能夠使用相對路徑app

5. 文件列表中任意一個緩存失敗都會致使整個緩存失效,瀏覽器hui按沒有application cache處理網站

6. 既能夠站點使用同一個minifest文件,也能夠每一個頁面使用一個

 

而後看一下CACHE、NETWORK、和FALLBACK三條指令語句

CACHE:指明須要緩存的資源文件,瀏覽器會自動緩存帶有manifest屬性的html頁面,因此yinyongwmanifest文件的頁面不用寫在裏面

NETWORK:不須要緩存的文件,名字就叫網絡工做嘛,能夠使用通配符

FALLBACK:沒法訪問緩存文件的備選文件,也能夠使用通配符,上邊例子的配置,讀取不到index.html的話就會跳轉至offline.html

 

manifest文件在檢測到須要更新後,在下次載入頁面時纔會生效,故若是想在當次生效就須要手動刷新頁面,代碼以下:

window.addEventListener("load", function (e) {
        window.applicationCache.addEventListener("updateready", function () {
          if (window.applicationCache.status === window.applicationCache.UPDATEREADY) {
              try{
                applicationCache.swapCache();
              }catch(e){}
            getOriginNativeHeader();
            window.location.reload();
          }
        }, false)
      }, false);
相關文章
相關標籤/搜索