前端工程师-设计开发html5缓存机制cache manifest配置实例

前端工程师-设计开发html5缓存机制cache manifest配置实例

ID:36014883

大小:19.76 KB

页数:3页

时间:2019-04-29

前端工程师-设计开发html5缓存机制cache manifest配置实例_第1页
前端工程师-设计开发html5缓存机制cache manifest配置实例_第2页
前端工程师-设计开发html5缓存机制cache manifest配置实例_第3页
资源描述:

《前端工程师-设计开发html5缓存机制cache manifest配置实例》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、作为一个Web开发相关的人员,都不会少听到、看到Cache这个词,CacheManifest是HTML5的一种缓存机制。它可以通过一个.manifest文件来配置需要缓存的或者一定要保持联网缓存的文件。AD:CacheManifest是HTML5的一种缓存机制,文章作者直接用博客当测试环境,虽然应用起来非常简单,但效果却出奇的好。缓存后的速度,简直是惊人的快。像Yslow显示,打开一个缓存过的页面,只要0.729秒,比不缓存的差不多快了10倍。一、CacheManifest基础知识作为一个Web开发相关的人员,都不

2、会少听到、看到Cache这个词。是的,上面也已经说了,它是一种缓存的机制。它可以通过一个.manifest文件来配置需要缓存的或者一定要保持联网缓存的文件。而重点就是这个.manifest文件,这里进行了简单的整理:◆MIMETYPE:text/cache-manifest◆需要由你创建的:NAME.manifest◆作用:主要是配置需要缓存的文件二、如何实现实现起来倒是非常简单(当然,这也是有问题的,这个我们后面讲解决方案),实现步骤如下:1.在服务器上添加MIMETYPE支比如Apache中可在.htacces

3、s中添加:1.AddType text/cache-manifest manifest 2.创建NAME.manifest: 其中第一行的CACHEMANIFEST标识是一定要有的,而CACHE/NETWORK/FACKBACK都是可选的。如果没有写标识,则默认缓存,Cache就不用说了,缓存;NETWORK指不想缓存的页面,比如登陆页等;FALLBACK是指当没有响应时的替代方案,比如我想请求某个页面,但这个页面的服务器挂了,那么,我可以显示另外一个指定的页面,文件结构如下:1.CACHE MANIFEST 2.

4、 3.# VERSION 0.3 4. 5.# 直接缓存的文件 6.CACHE: 7.abc.html 8.images/sofish.png 1.js/main.js 2.css/layout.css 3. 4.# 需要在时间在线的文件 5.NETWORK: 6./wp-admin/ 7. 8.# 替代方案 9.FALLBACK: 10./ajax/ ajax.html 至于如何更新这个配置文件?只要改变文件的内容即可,上面的#VERSION0.3其实只是一行注释,但改变文件可以重新缓存,这样写上版本号,想更新的

5、时候修改版本号来重新缓存,是一种比较推荐的方法,甚至可以是最佳实践。3.给标签加manifest属性1. 是的,就是如此简单,相信你花上30分钟也就了解了,而且能够快速的应用到工作中。三、CacheManifest存在的问题经过上面一整,速度明显快了许多,帮忙测试的人也小震惊了一下,只是,还是存在一些问题,看一下,然后我们尝试解决:1.自动缓存引用了manifest文件的页面即使在NETWORK中指定"*"(所有的页面都)使用

6、网络,还是不能解决它自动缓存当前页面。这使得这个页面在manifest没有变更的情况下,会一直以"类静态"存在。比如,你后台更新了一篇文章,这个动态的首页,还是像第一次缓存的时候一样,没有变。这对于静态页面还好,但应用在一个动态系统就很麻烦了,因为你的内容是时时要更新的。2.Firefox弹出提示信息可能是习惯了弹窗警告之类的,一不小心,用户还以为是网站被人挂马呢,想把不干净的东西存储到他的电脑。四、解决方案(一)关于自动缓存当前页面在《ProHTML5Programming》有这样一句话:这并不是Bug,而是机制

7、的需要。虽然说这样会让页面载入更快,但对于动态页面来说就是恶心了。至少应该有一种让用户选择是否缓存当前页的配置方案(或者说是一个开关)。不过,这是暂时不能解决的,毕竟这还只是一个Draft,我们要用,就应该找一个合适的方案。我的想法是,看看大家有没有更好的办法。结果,查了一下,无果。新的东西,几乎所有文章说的都只是我上面说的那个如何去写一个manifest文件,看来还是没办法偷懒。然后,便开始想:◆一定不要缓存动态的页面,当前页一定不能引用manifest文件。◆能不能从其他页面先载入缓存?那么,如果有解决方案的话

8、,解决方法应该是:◆不在当前页面引用manifest。◆在用户打开页面之前,需要有一个页面来实现缓存机制。如果这样,那么为何不试一下iframe来引入一个拥有manifest的静态文件?但用iframe还能会缓存到文件?经过一翻测试,GoogleChrome的调试工具给了答案:结果很不错,成功缓存。做法是这样的,新建一个cache.html文件来当做为当前页

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。