搜尋
首頁web前端js教程H5的快取Manifest的使用

H5的快取Manifest的使用

Mar 16, 2018 am 11:25 AM
html5manifest使用

這次帶給大家H5的快取Manifest的使用,使用H5的快取Manifest注意事項有哪些,以下就是實戰案例,一起來看一下。

在app中更新h5頁面一直有快取問題。預設什麼都不做的情況下,app有一定的空間快取頁面。一開始更新之後會馬上加載,等到app快取空間上來之後更新就無法下載了。安卓能夠清理快取空間,ios就只能卸載重裝(are u kidding me?)。這是最壞的情況,你可以更換下地址。

no-cache

注意到這一點之後,頁面加入no-cache.

<meta>

告訴瀏覽器不要快取頁面。實際上是頁面沒有改變的時候請求是304,如果頁面改變了才是200,所以說加了no-cache不是說每次都全新下載,而是更新了就會重新下載。但這時候不同的手機表現還是不一樣的。 4s與6sp就不同。造訪同一個頁面,修改了js。 4s更新了,6sp還是老樣子。咋整呢,因為服務端還有快取。先設定nginx快取:

 location / {
           root   html;           expires -1;
           index  index.html index.htm;
        }

並需要重啟下nginx:

nginx -s reload

這時候6sp也更新了。

但老是重啟nginx不是辦法啊,可能造成一些請求遺失。而且這種情況下,離線是完全不能用了。例如斷網了去發訊息,原本設定的一張紅色嘆號的圖片和人物的頭像都顯示不出來。當然可以轉成base64的字串解決這個問題。 base64就是很長,放在哪裡都佔空間。怎麼解決,manifest

no-cache+更新檔名+更新位址待測

 manifest

介紹可以先看w3shool的:http:/ /www.w3school.com.cn/html5/html_5_app_cache.asp ,這裡就說下使用的情況。

1.設定html


2.設定快取目錄

CACHE MANIFEST
#v1.0.0.0#需要缓存的文件js/zepto.js#不需要缓存的页面
NETWORK:*#无法访问页面
FALLBACK404.html

3.設定nginx mime

text/cache-manifest         appcache;

mime types檔案都在conf目錄下。啟動nginx之後。這時候頁面會出現載入狀況:

 

這個圖說明2個事情,一個是流程上會先下載index.appcache,然後會陸續觸發checking event,download event ,progress event 和updateReady event.二個是預設快取了目前頁面。而且居然是帶個參數也緩存。看樣子只要地址不一樣的當前頁都給緩存了(上面的緩存目錄我只寫了一個zepto)。再刷新頁面:

 index.appcache沒有更新就不會觸發檢查。 

 

 載入快取的檔案狀態是200,size一欄是from cache。從瀏覽器載入的是304,時間上一個是幾毫秒,一個是十幾毫秒。 f12進入開發者模式,在Application cache一欄可以看見已快取的檔案。

但在這個地方是無法清理的,需要在Application 中的 clear storage來清理。

 更新已快取的檔案

 最明顯的就是首頁,預設快取下來。這時候你改變首頁內容而不修改index.appache是​​完全沒有作用的。例如你刪掉一個js的引用,客戶端還是下載了這個js。這個時候你需要修改這個快取檔案:

#不需要缓存的页面
NETWORK:  
mobile/index.html
*

注意到雖然index.appache和index位於同一級,但不能寫index.html,得寫相當於網站的路徑,其他資源也是一樣。這時候觸發更新了,但頁面還是載入的快取資源,所以還需要做一個處理:

  window.applicationCache.addEventListener("updateready", function(){
    location.reload()
  });

这样才会加载最新的页面。如果首页再发生修改,可以随意(加个空格,加空行)修改缓存文件,就能触发更新。所以剩下的问题就是记得在更新资源之后记得更新缓存文件。建议就是不变的资源(框架样式,框架js,图片)缓存下来,经常要修改的js就让浏览器缓存吧。现在这样就避免了reload nginx。这个效果要比加no-cache的方法好。当然,如果无所谓消息或者reload的影响。no-cache还是很方便,毕竟这个index.appache一旦加上,难以去掉,除非清理缓存。

相信看了本文案例你已经掌握了方法,更多精彩请关注php中文网其它相关文章!

推荐阅读:

webpack的样式加载详解

JS事件先发布后订阅的方法


以上是H5的快取Manifest的使用的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
node.js流帶打字稿node.js流帶打字稿Apr 30, 2025 am 08:22 AM

Node.js擅長於高效I/O,這在很大程度上要歸功於流。 流媒體匯總處理數據,避免內存過載 - 大型文件,網絡任務和實時應用程序的理想。將流與打字稿的類型安全結合起來創建POWE

Python vs. JavaScript:性能和效率注意事項Python vs. JavaScript:性能和效率注意事項Apr 30, 2025 am 12:08 AM

Python和JavaScript在性能和效率方面的差異主要體現在:1)Python作為解釋型語言,運行速度較慢,但開發效率高,適合快速原型開發;2)JavaScript在瀏覽器中受限於單線程,但在Node.js中可利用多線程和異步I/O提升性能,兩者在實際項目中各有優勢。

JavaScript的起源:探索其實施語言JavaScript的起源:探索其實施語言Apr 29, 2025 am 12:51 AM

JavaScript起源於1995年,由布蘭登·艾克創造,實現語言為C語言。 1.C語言為JavaScript提供了高性能和系統級編程能力。 2.JavaScript的內存管理和性能優化依賴於C語言。 3.C語言的跨平台特性幫助JavaScript在不同操作系統上高效運行。

幕後:什麼語言能力JavaScript?幕後:什麼語言能力JavaScript?Apr 28, 2025 am 12:01 AM

JavaScript在瀏覽器和Node.js環境中運行,依賴JavaScript引擎解析和執行代碼。 1)解析階段生成抽象語法樹(AST);2)編譯階段將AST轉換為字節碼或機器碼;3)執行階段執行編譯後的代碼。

Python和JavaScript的未來:趨勢和預測Python和JavaScript的未來:趨勢和預測Apr 27, 2025 am 12:21 AM

Python和JavaScript的未來趨勢包括:1.Python將鞏固在科學計算和AI領域的地位,2.JavaScript將推動Web技術發展,3.跨平台開發將成為熱門,4.性能優化將是重點。兩者都將繼續在各自領域擴展應用場景,並在性能上有更多突破。

Python vs. JavaScript:開發環境和工具Python vs. JavaScript:開發環境和工具Apr 26, 2025 am 12:09 AM

Python和JavaScript在開發環境上的選擇都很重要。 1)Python的開發環境包括PyCharm、JupyterNotebook和Anaconda,適合數據科學和快速原型開發。 2)JavaScript的開發環境包括Node.js、VSCode和Webpack,適用於前端和後端開發。根據項目需求選擇合適的工具可以提高開發效率和項目成功率。

JavaScript是用C編寫的嗎?檢查證據JavaScript是用C編寫的嗎?檢查證據Apr 25, 2025 am 12:15 AM

是的,JavaScript的引擎核心是用C語言編寫的。 1)C語言提供了高效性能和底層控制,適合JavaScript引擎的開發。 2)以V8引擎為例,其核心用C 編寫,結合了C的效率和麵向對象特性。 3)JavaScript引擎的工作原理包括解析、編譯和執行,C語言在這些過程中發揮關鍵作用。

JavaScript的角色:使網絡交互和動態JavaScript的角色:使網絡交互和動態Apr 24, 2025 am 12:12 AM

JavaScript是現代網站的核心,因為它增強了網頁的交互性和動態性。 1)它允許在不刷新頁面的情況下改變內容,2)通過DOMAPI操作網頁,3)支持複雜的交互效果如動畫和拖放,4)優化性能和最佳實踐提高用戶體驗。

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

PhpStorm Mac 版本

PhpStorm Mac 版本

最新(2018.2.1 )專業的PHP整合開發工具

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強大的PHP整合開發環境

mPDF

mPDF

mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),

EditPlus 中文破解版

EditPlus 中文破解版

體積小,語法高亮,不支援程式碼提示功能