離線存儲
- H5引入了應用程序緩存,這意味着web應用可進行緩存,並可在沒有因特網連接的時候進行訪問,輕鬆創建web應用的離線版本
- 離線應用和網頁緩存都是爲了更好的緩存各種文件以提高讀取速度
- 離線於緩存對網絡環境的要求
- 緩存依賴於網絡的存在,離線在離線狀態下仍然可以
- 緩存主要緩存當前頁面的內容,離線主要走緩存,只要設置緩存該文件的頁面,都能在離線狀態下讀取該文件
- 離線存儲的意義:最突出的功能就是在沒有網絡的環境下web應用仍然可以正常運行,減少訪問互聯網過程中的流量消耗
離線存儲的實現步驟
- 服務器設置頭信息:- AddType:text/cache-manifest manifest,例如Apache服務器,找到{Apache_home}/conf/mine.types這個文件,並加入前面那行代碼,如果是免安裝版則是在web.xml中進行配置,
<mime-mapping><extension>manifest</extension><mime-type>text/cache-manifest</mime-type></mime-mapping>
- html不籤加:- manifest=“xxx.manifest”
- 寫manifest文件(離線的清單列表)
- manifest文件是簡單的文本文件,它告知瀏覽器被緩存的內容(以及不緩存的內容),manifest文件可分爲三個部分:
- CACHE MANIFEST:在此標題下列出文件將在首次加載後進行緩存
- NETWORK:在此標題下列出的文件需要與服務器連接,且不會被緩存
- FALLBACK:在此標題下列出的文件規定當頁面無法訪問時候的回退頁面比如(404頁面)
- 瀏覽器©與服務器(S)交互的過程,在有網絡的情況下,C端訪問S端,S端把頁面給C端的同時也會根據緩存列表清單,把需要緩存的內容存放進去,下一次C端請求S端的時候,先去緩存中查看,再去S端查找
離線應用的特性
- 沒網的時候,可以正常訪問
- 有了緩存,可以快速響應頁面
- 可以降低服務器資源帶寬
- 緩存的可以是任何文件
- 需要緩存的頁面加上如下配置:
<html lang="en" manifest="fc.manifest"></html>
- 設置manifest文件
CACHE MANIFEST
# 常常寫版本號、時間戳、md5等方便觸發緩存更新
# 需要緩存的文件,無論在線與否,都會優先從緩存中獲取
CACHE:
dilireba.jpg
index.html
# 不緩存的文件,無論緩存是否更新,都會從服務器端獲取
NETWORK:
index.css
manifest文件更新機制
- 用戶清空瀏覽器緩存
- manifest文件被修改,即使是添加了註釋也依然會觸發更新
- 可以編寫代碼來更新,window.applicationCache