pbootcms网站模板|日韩1区2区|织梦模板||网站源码|日韩1区2区|jquery建站特效-html5模板网

HTML5應用程序緩存Application Cache詳解

HTML5引入了應用程序緩存技術,意味著web應用可進行緩存,并在沒有網絡的情況下使用,通過創建cache manifest文件,可以輕松的創建離線應用。,HTML5中國,中國最大的HTML5中文門戶。
什么是Application Cache

HTML5引入了應用程序緩存技術,意味著web應用可進行緩存,并在沒有網絡的情況下使用,通過創建cache manifest文件,可以輕松的創建離線應用。

Application Cache帶來的三個優勢是:

① 離線瀏覽

② 提升頁面載入速度

③ 降低服務器壓力

而且主要瀏覽器皆以支持Application Cache,就算不支持也不會對程序造成什么影響

離線存儲技術

HTML5提出了兩大離線存儲技術:localstorage與Application Cache,兩者各有應用場景;傳統還有離線存儲技術為Cookie。

經過實踐我們任務localstorage應該存儲一些非關鍵性ajax數據,做錦上添花的事情;

Application Cache用于存儲靜態資源,仍然是干錦上添花的事情;

而cookie只能保存一小段文本(4096字節);所以不能存儲大數據,這是cookie與上述緩存技術的差異之一,而因為HTTP是無狀態的,服務器為了區分請求是否來源于同一個服務器,需要一個標識字符串,而這個任務就是cookie完成的,這一段文本每次都會在服務器與瀏覽器之間傳遞,以驗證用戶的權限。

所以Application Cache的應用場景不一樣,所以使用也不一致。

Application Cache簡介

Application Cache的使用要做兩方面的工作:

① 服務器端需要維護一個manifest清單

② 瀏覽器上只需要一個簡單的設置即可

  1. <html  manifest="demo.appcache">
復制代碼

以例子做說明:

  1. CACHE MANIFEST

  2. CACHE:
  3. # 需要緩存的列表
  4. style1.css
  5. 1.jpg
  6. 01.js

  7. http://localhost/applicationcache/02.js


  8. http://localhost/applicationcache/zepto.js

  9. NETWORK:
  10. # 不需要緩存的
  11. 4.jpg

  12. FALLBACK:
  13. # 訪問緩存失敗后,備用訪問的資源,第一個是訪問源,第二個是替換文件*.html /offline.html
  14. 2.jpg/3.jpg
復制代碼

首先我這里報了一個錯:

  1. Application Cache Error event: Manifest fetch failed (404)
復制代碼

這個錯誤的原因是:manifest 文件需要配置正確的 MIME-type,即 “text/cache-manifest”。必須在 web 服務器上進行配置,不同的服務器不一樣



  1. \APPLICATIONCACHE
  2.     01.js
  3.     02.js
  4.     1.jpg
  5.     2.jpg
  6.     3.jpg
  7.     4.jpg
  8.     demo.appcache
  9.     index.html
  10.     style1.css
  11.     style2.css
  12.     web.config
  13.     zepto.js
復制代碼

這樣一來便可以離線應用了,這個時候就算斷網了,那些文件依舊能訪問


這里有一點值得注意,比如這里不帶/index.html他會將“applicationcache/”緩存,其實這個就是index.html

manifest 文件可分為三個部分:
CACHE MANIFEST - 在此標題下列出的文件將在首次下載后進行緩存
NETWORK - 在此標題下列出的文件需要與服務器的連接,且不會被緩存
FALLBACK - 在此標題下列出的文件規定當頁面無法訪問時的回退頁面(比如 404 頁面)


如圖所示,HTML5定義了幾個事件點,但是我們一般不會主動使用js去操作什么,大多數情況下,我們完全依賴瀏覽器的處理即可。

尺寸限制

Application Cache的尺寸限制統一在5M,我這里做一個測試:


如所示,兩個css文件依舊超過了5M這個時候

  1. Document was loaded from Application Cache with manifest http://localhost/applicationcache/demo.appcache
  2. index.html:1 Application Cache Checking event
  3. index.html:6 GET http://localhost/applicationcache/style2.css net::ERR_FAILED
  4. index.html:1 Application Cache NoUpdate event
  5. index.html:11 GET http://localhost/applicationcache/2.jpg net::ERR_FAILED
  6. index.html:12 GET http://localhost/applicationcache/3.jpg net::ERR_FAILED
復制代碼

如所示,style2已經不能緩存了,這個會造成什么問題呢?

比如我A頻道維護了自己的Application Cache,B頻道也維護了自己的,這個時候A頻道如果使用達到了一個峰值,會導致B頻道所有的緩存失效,所以:

建議Application Cache,存儲公共資源,不要存儲業務資源

一些問題

由更新機制來說,首次更新manifest時,因為頁面加載已經開始甚至已經完成,緩存更新尚未完成,瀏覽器仍然會使用過期的資源;瀏覽器是當Application Cache有更新時,該次不會使用新資源,第二次才會使用。這個時候update事件中執行window.reload事件。

  1. window.applicationCache.addEventListener("updateready", function(){
  2.     window.location.reload()
  3. });
復制代碼

由上例可以知道,緩存的不只是顯示定義的文件,比如上例中的applicationcache/時便會默認保存index.html為映射的數據,并且包含demo.appcache文件,很多時候會遇到一次文件更新線上老是不更新,這個時候隨便在manifest配置文件中做一點修改即可更新。

比如我們將這里代碼做一個改變:

  1. <html  manifest="demo.appcache">
  2. =>
  3. <html  manifest="demo1.appcache">
復制代碼

這個時候如果不做demo.appcache的更新的話,緩存將不會更新,原因是index.html被緩存了,檢測的仍然是原manifest清單

各個頁面統一管理自己的manifest清單,意思是a頁面配置了common.js,b頁面也配置了common.js,意思是a頁面更新后,b頁面的manifest不更改的話,b頁面依舊讀取的是老版本的文件,這個有一定道理卻也有一定浪費,需要公共頁面做處理。

總結

從可用性與易用性來說,Application Cache是值得使用的,但是最好是做靜態資源的緩存,真正要實現離線應用還得花更多的功夫呢!

參考:http://www.w3school.com.cn/html5/html_5_app_cache.asp

via:http://www.codeceo.com/article/html5-application-cache.html

【網站聲明】本站除付費源碼經過測試外,其他素材未做測試,不保證完整性,網站上部分源碼僅限學習交流,請勿用于商業用途。如損害你的權益請聯系客服QQ:2655101040 給予處理,謝謝支持。

相關文檔推薦

由于實際運行環境是在瀏覽器中,因此性能還取決于JavaScript解釋器的效率,指定的FPS幀速在低性能解釋器中可能不會達到,所以這部分不是開發者能夠決定的,開發者能作的是盡可能通
本文將使用HTML5提供的VideoAPI做一個自定義的視頻播放器,需要用到HTML5提供的video標簽、以及HTML5提供的對JavascriptAPI的擴展。,HTML5中國,中國最大的HTML5中文門戶。
隨著 Hybrid 應用的豐富,HTML5 工程師們已經不滿足于把桌面端體驗簡單移植到移動端,他們覬覦移動原生應用人性化的操作體驗,特別是原生應用與生俱來的豐富的手勢系統。HTML5 沒有提
你想要在自己網站上分享一個產品,或者是一個作品集,又或者僅僅只是一個靈感。在你發布到網上之前,你想讓它看起來有吸引力,專業,或者至少得看起來像那么回事。那么你接下
H5廣告,包括H5廣告的設計流程,究竟有什么講究,和階段。為了能幫助更多的人了解H5廣告,我專門做了一個講義。同時,也讓我意外的收到了非常好反饋和認!這是對我的極大鼓勵!我的
本文主要內容有:框架與組件、構建生態、開發技巧與調試、html、css與重構、native/hybrid/桌面開發、前端/H5優化、全棧/全端開發、研究實驗、數據分析與監控、其它軟技能、前端技術網
主站蜘蛛池模板: 单柱拉力机-橡胶冲片机-哑铃裁刀-江都轩宇试验机械厂 | 河北凯普威医疗器材有限公司,高档轮椅系列,推车系列,座厕椅系列,协步椅系列,拐扙系列,卫浴系列 | 干式变压器厂_干式变压器厂家_scb11/scb13/scb10/scb14/scb18干式变压器生产厂家-山东科锐变压器有限公司 | 富森高压水枪-柴油驱动-养殖场高压清洗机-山东龙腾环保科技有限公司 | 杜康白酒加盟_杜康酒代理_杜康酒招商加盟官网_杜康酒厂加盟总代理—杜康酒神全国运营中心 | 基业箱_环网柜_配电柜厂家_开关柜厂家_开关断路器-东莞基业电气设备有限公司 | 开云(中国)Kaiyun·官方网站 - 登录入口 | 英国雷迪地下管线探测仪-雷迪RD8100管线仪-多功能数字听漏仪-北京迪瑞进创科技有限公司 | 涡街流量计_LUGB智能管道式高温防爆蒸汽温压补偿计量表-江苏凯铭仪表有限公司 | 天津蒸汽/热水锅炉-电锅炉安装维修直销厂家-天津鑫淼暖通设备有限公司 | 哈希余氯测定仪,分光光度计,ph在线监测仪,浊度测定仪,试剂-上海京灿精密机械有限公司 | 拼装地板,悬浮地板厂家,悬浮式拼装运动地板-石家庄博超地板科技有限公司 | 自动钻孔机-全自动数控钻孔机生产厂家-多米(广东)智能装备有限公司 | 高防护蠕动泵-多通道灌装系统-高防护蠕动泵-www.bjhuiyufluid.com慧宇伟业(北京)流体设备有限公司 | 电销卡_稳定企业大语音卡-归属地可选-世纪通信 | 网优资讯-为循环资源、大宗商品、工业服务提供资讯与行情分析的数据服务平台 | 衢州装饰公司|装潢公司|办公楼装修|排屋装修|别墅装修-衢州佳盛装饰 | 电子万能试验机_液压拉力试验机_冲击疲劳试验机_材料试验机厂家-济南众标仪器设备有限公司 | 制氮设备-变压吸附制氮设备-制氧设备-杭州聚贤气体设备制造有限公司 | 并网柜,汇流箱,电控设备,中高低压开关柜,电气电力成套设备,PLC控制设备订制厂家,江苏昌伟业新能源科技有限公司 | 深圳公司注册-工商注册代理-注册公司流程和费用_护航财税 | 圆形振动筛_圆筛_旋振筛_三次元振动筛-河南新乡德诚生产厂家 | 华夏医界网_民营医疗产业信息平台_民营医院营销管理培训 | 精密光学实验平台-红外粉末压片机模具-天津博君 | 智慧农业|农业物联网|现代农业物联网-托普云农物联网官方网站 | 国际船舶网 - 船厂、船舶、造船、船舶设备、航运及海洋工程等相关行业综合信息平台 | 工业洗衣机_工业洗涤设备_上海力净工业洗衣机厂家-洗涤设备首页 bkzzy在职研究生网 - 在职研究生招生信息咨询平台 | 创富网-B2B网站|供求信息网|b2b平台|专业电子商务网站 | 无锡网站建设-做网站-建网站-网页设计制作-阿凡达建站公司 | 干式变压器厂_干式变压器厂家_scb11/scb13/scb10/scb14/scb18干式变压器生产厂家-山东科锐变压器有限公司 | 一体化污水处理设备,一体化污水设备厂家-宜兴市福源水处理设备有限公司 | X光检测仪_食品金属异物检测机_X射线检测设备_微现检测 | 办公室家具_板式办公家具定制厂家-FMARTS福玛仕办公家具 | 集装箱箱号识别_自重载重图像识别_铁路车号自动识别_OCR图像识别 | 防水试验机_防水测试设备_防水试验装置_淋雨试验箱-广州岳信试验设备有限公司 | X光检测仪_食品金属异物检测机_X射线检测设备_微现检测 | 环氧树脂地坪_防静电地坪漆_环氧地坪漆涂料厂家-地壹涂料地坪漆 环球电气之家-中国专业电气电子产品行业服务网站! | 亮点云建站-网站建设制作平台| vr安全体验馆|交通安全|工地安全|禁毒|消防|安全教育体验馆|安全体验教室-贝森德(深圳)科技 | 药品/药物稳定性试验考察箱-埃里森仪器设备(上海)有限公司 | 瑞典Blueair空气净化器租赁服务中心-专注新装修办公室除醛去异味服务! |