百分百源码网-让建站变得如此简单! 登录 注册 签到领金币!

主页 | 如何升级VIP | TAG标签

当前位置: 主页>网站教程>html5教程> 什么是利用程序缓存(ApplicationCache)?-
分享文章到:

什么是利用程序缓存(ApplicationCache)?-

发布时间:08/01 来源:未知 浏览: 关键词:
HTML5引入了利用程序缓存技术,意味着web利用可进行缓存,并在没有网络的状况下运用,通过新建cachemanifest文件,可以轻松的新建离线利用 发源

html5以前的网页,都是无连贯,必需联网才干拜访,这其实也是web的特点,这其实关于PC是时期题目并不大,但到了挪移互联网时期,设施终端位置不再牢固,依赖无线信号,网络的牢靠性变得落低,比方坐在火车上,过了一个隧道(15分钟),便没法拜访网站,这关于web的损伤是很大的,比方关于 《ecmascript合集》这样的为浏览而生的页面。
html5便引入了cache manifest 文件。那么什么是cache manifest呢,接下来会讲到。

什么是利用程序缓存(Application Cache)?

HTML5 引入了利用程序缓存,这意味着 web 利用可进行缓存,并可在没有因特网连贯时进行拜访。
利用程序缓存为利用带来三个优势:

离线阅读 - 会员可在利用离线时运用它们

速度 - 已缓存资源加载得更快

减少办事器负载 - 阅读器将只从办事器下载更新过或更改正的资源。

支撑版本

主流阅读器皆支撑,IE8 IE9除外。

离线存储技术

HTML5提出了两大离线存储技术:localstorage与Application Cache,两者各有利用场景;传统还有离线存储技术为Cookie。

经过实践我们以为localstorage应当存储一些非关键性ajax数据,做如虎添翼的事情;

Application Cache用于存储静态资源,依然是干如虎添翼的事情;

而cookie只能保留一小段文本(4096字节);所以不克不及存储大数据,这是cookie与上述缓存技术的悬殊之一,而由于HTTP是无状态的,办事器为了区分要求可否来源于统一个办事器,需要一个标识字符串,而这个任务就是cookie完成的,这一段文本每次都会在办事器与阅读器之间通报,以验证会员的权限。

所以Application Cache的利用场景不同,所以运用也纷歧致。

Application Cache简介

Application Cache的运用要做两方面的工作:

① 办事器端需要保护一个manifest清单

② 阅读器上只需要一个简略的设定即可

以例子做注明:

CACHE MANIFEST
CACHE:
# 需要缓存的列表
style1.css
1.jpg
01.js
http://localhost/applicationcache/02.js
http://localhost/applicationcache/zepto.js
NETWORK:
# 不需要缓存的
4.jpg
FALLBACK:
# 拜访缓存失败后,备用拜访的资源,首先个是拜访源,第二个是替代文件*.html /offline.html
2.jpg/3.jpg

第一我这里报了一个错:

 Application Cache Error event: Manifest fetch failed (404)

这个差错的缘由是:manifest 文件需要配置准确的 MIME-type,即 "text/cache-manifest"。必需在 web 办事器上进行配置,不一样的办事器不同

\APPLICATIONCACHE
    01.js
    02.js
    1.jpg
    2.jpg
    3.jpg
    4.jpg
    demo.appcache
    index.html
    style1.css
    style2.css
    web.config
    zepto.js

这样一来便可以离线利用了,这个时候就算断网了,那些文件照旧能拜访

Document was loaded from Application Cache with manifest http://localhost/applicationcache/demo.appcache
index.html:1 Application Cache Checking event
index.html:6 GET http://localhost/applicationcache/style2.css net::ERR_FAILED
index.html:1 Application Cache NoUpdate event
index.html:11 GET http://localhost/applicationcache/2.jpg net::ERR_FAILED
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事件。

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

由上例可以晓得,缓存的不只是显示定义的文件,比方上例中的applicationcache/时便会默许保留index.html为映照的数据,而且包括demo.appcache文件,许多时候会碰到一次文件更新线上老是不更新,这个时候随意在manifest配置文件中做一点修改即可更新。

比方我们将这里代码做一个转变:


=>

这个时候要是不做demo.appcache的更新的话,缓存将不会更新,缘由是index.html被缓存了,检测的依然是原manifest清单

各个页面同一治理本人的manifest清单,意思是a页面配置了common.js,b页面也配置了common.js,意思是a页面更新后,b页面的manifest不更改的话,b页面照旧读取的是老版本的文件,这个有一定原理却也有一定浪费,需要公共页面做处置。

总结

从可用性与易用性来说,Application Cache是值得运用的,但是最佳是做静态资源的缓存,真刚要实现离线利用还得花更多的功夫呢!

以上就有哪些是利用程序缓存(Application Cache)?的细致内容,更多请关注 百分百源码网 其它相干文章!

打赏

打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

百分百源码网 建议打赏1~10元,土豪随意,感谢您的阅读!

共有150人阅读,期待你的评论!发表评论
昵称: 网址: 验证码: 点击我更换图片
最新评论

本文标签

广告赞助

能出一分力是一分吧!

订阅获得更多模板

本文标签

广告赞助

订阅获得更多模板