最近遇到項目優化的問題,由於項目用到的框架,函數庫比較多,導致首次需要加載3.6M的文件,那么問題來了,當網絡很差的時候,很多文件就會timeout.然后就掛了。所以就開始用到離線緩存,一些文件靜態的函數庫開始緩存起來,一些經常更新的文件每次上線加版本號更新。
下面說說離線緩存,長話短說,很簡單,只要完成簡單的幾個步驟
1,創建一個后綴名為.appcache的文件(如:list.appcache),里面配置項也很簡單,同上
CACHE MANIFEST:這里面把你需要緩存的文件列出來,注意路徑哈。
NETWORK:指定只有通過聯網才能瀏覽的文件.一般寫通配符 * 號(*代表除了在CACHE中的文件)
FALLBACK: 當上面文件嘗試加載失敗時,轉換成下面列出的備用條目。
2.把list.appcache添加到頁面中得HTML中
<html lang="zh-cn" manifest="/list.appcache" type="text/cache-manifest">
3.我們可以通過調試器看 或者 chrome://appcache-internals/ 可以訪問
小結:
離線訪問對基於網絡的應用而言越來越重要。雖然所有瀏覽器都有緩存機制,但它們並不可靠,也不一定總能起到預期的作用。HTML5 使用ApplicationCache 接口解決了由離線帶來的部分難題。前提是你需要訪問的web頁面至少被在線訪問過一次。
使用離線加載有幾大優勢,首先可以在沒有網絡的情況下訪問緩存的資源,第二,可以加快網頁加載速度。
此外, 如果報錯,首先檢測訪問文件地址是否正確(大部分是這個原因導致),還有就是需要服務器支持,比如tomcat需要修改config文件(nginx我試過,是可以識別,不用額外修改)
<mime-mapping> <extension>manifest</extension> <mime-type>text/cache-manifest</mime-type> </mime-mapping>
今天就暫時寫到這里了