html5離線快取問題
1.應用程式快取
什麼是應用程式快取()?
html5 引入了應用程式快取,這意味著 web 應用可進行快取,並可在沒有網際網路連線時進行訪問。應用程式快取為應用帶來三個優勢:
主瀏覽器都支援,ie8.ie9除外
注意事項
本地快取應用所需的檔案
使用方法:
①配置manifest檔案
頁面上:
manifest檔案:
manifest 檔案是簡單的文字檔案,它告知瀏覽器被快取的內容(以及不快取的內容)。
manifest 檔案可分為三個部分:
②network - 在此標題下列出的檔案需要與伺服器的連線,且不會被快取
③fallback - 在此標題下列出的檔案規定當頁面無法訪問時的回退頁面(比如 404 頁面)
①cache manifest
②network
下面的 network 小節規定檔案 "login.asp" 永遠不會被快取,且離線時是不可用的:
network:
login.asp
可以使用星號來指示所有其他資源/檔案都需要網際網路連線:
network:*
③fallback
下面的 fallback 小節規定如果無法建立網際網路連線,則用
"offline.html" 替代 /html5/ 目錄中的所有檔案:
fallback:
/html5/ /404.html
注釋:第乙個 uri 是資源,第二個是替補。
格式
cache manifest# 2012-02-21 v1.0.0/theme.css/logo.gif/main.jsnetwork:login.aspfallback:/html5/
/404.html
完整demo:
cache manifest
# 2016-07-24 v1.0.0
/theme.css
/main.js
network:
login.jsp
fallback:
/html/ /offline.html
伺服器上:manifest檔案需要配置正確的mime-type,即 "text/cache-manifest"。
如tomcat:
manifest
text/cache-manifest
常用api:
0(uncached) :
無快取, 即沒有與頁面相關的應用快取
1(idle) : 閒置,即應用快取未得到更新
5 (idle) :
廢棄,即應用快取的描述檔案已經不存在了,因此頁面無法再訪問應用快取
表示應用快取狀態的改變:
checking : 在瀏覽器為應用快取查詢更新時觸發
noupdate : 在檢查描述檔案發現檔案無變化時觸發
cached : 在應用快取完整可用時觸發
的三個優勢:
① 離線瀏覽
② 提公升頁面載入速度
③ 降低伺服器壓力
注意事項:
1. 瀏覽器對快取資料的容量限制可能不太一樣(某些瀏覽器設定的限制是每個站點 5mb)
3. 引用manifest的html必須與manifest檔案同源,在同乙個域下
4. 瀏覽器會自動快取引用manifest檔案的html檔案,這就導致如果改了html內容,也需要更新版本才能做到更新。
5. manifest檔案中cache則與network,fallback的位置順序沒有關係,如果是隱式宣告需要在最前面
6. fallback中的資源必須和manifest檔案同源
7. 更新完版本後,必須重新整理一次才會啟動新版本(會出現重刷一次頁面的情況),需要新增監聽版本事件。
8. 站點中的其他頁面即使沒有設定manifest屬性,請求的資源如果在快取中也從快取中訪問
9. 當manifest檔案發生改變時,資源請求本身也會觸發更新
點我參考更多資料!
離線快取與傳統瀏覽器快取區別:
1. 離線快取是針對整個應用,瀏覽器快取是單個檔案
2. 離線快取斷網了還是可以開啟頁面,瀏覽器快取不行
3. 離線快取可以主動通知瀏覽器更新資源
更新
一旦應用被快取,它就會保持快取直到發生下列情況:
使用者清空瀏覽器快取
manifest 檔案被修改(參閱下面的提示)
由程式來更新應用快取
如何理解瀏覽器快取,優點是什麼?
1、快取的優點:
1)伺服器響應更快:因為請求從快取伺服器(離客戶端更近)而不是源伺服器被響應,這個過程耗時更少,讓伺服器看上去響應更快。
2)減少網路頻寬消耗:當副本被重用時會減低客戶端的頻寬消耗;客戶可以節省頻寬費用,控制頻寬的需求的增長並更易於管理。
HTML5離線快取
它的優勢在於 ie10以下不支援,其餘的瀏覽器都支援。補充瀏覽器及其核心 ie trident ff gecko chrome blink opera blink 曾經使用presto safari webkit timepara getdatetime 獲取日期和時間 logo.png width...
html5 離線快取
本文將介紹離線快取的方方面面,並在最後會介紹一下關於自動化的問題。html5之前的網頁,都是無連線,必須聯網才能訪問,這其實也是web的特色,這其實對於pc是時代問題並不大,但到了移動網際網路時代,裝置終端位置不再固定,依賴無線訊號,網路的可靠性變得降低,比如坐在火車上,過了乙個隧道 15分鐘 便無...
html5的離線快取
html5 引入了應用程式快取,這意味著web應用可以進行快取,並且可以在沒有網路連線的時候進行訪問。1 離線瀏覽 使用者可以在應用離線時使用它們 2 速度更快 已快取資源,載入得更快 有乙個web應用有三個檔案index.html,a.js,b.css,現在需要把js和css檔案快取起來 1.在i...