千家信息网

HTML 5缓存机制中如何进行Cache Manifest配置

发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,这篇文章给大家介绍HTML 5缓存机制中如何进行Cache Manifest配置,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。Cache Manifest是HTML 5的一种缓存
千家信息网最后更新 2026年11月03日HTML 5缓存机制中如何进行Cache Manifest配置

这篇文章给大家介绍HTML 5缓存机制中如何进行Cache Manifest配置,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

Cache Manifest是HTML 5的一种缓存机制,文章作者直接用博客当测试环境,虽然应用起来非常简单,但效果却出奇的好。缓存后的速度,简直是惊人的快。像Yslow显示,打开一个缓存过的页面,只要0.729秒,比不缓存的差不多快了10倍。

一、Cache Manifest基础知识

作为一个Web开发相关的人员,都不会少听到、看到Cache这个词。是的,上面也已经说了,它是一种缓存的机制。它可以通过一个.manifest文件来配置需要缓存的或者一定要保持联网缓存的文件。而重点就是这个.manifest文件,这里进行了简单的整理:

◆MIME TYPE:text/cache-manifest

◆需要由你创建的:NAME.manifest

◆作用:主要是配置需要缓存的文件

二、如何实现

实现起来倒是非常简单(当然,这也是有问题的,这个我们后面讲解决方案),实现步骤如下:

1.在服务器上添加MIME TYPE支

比如 Apache 中可在 .htaccess 中添加:

AddType text/cache-manifest manifest

2.创建 NAME.manifest:

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

CACHE MANIFEST   # VERSION 0.3   # 直接缓存的文件  CACHE:  abc.html  images/sofish.png  js/main.js  css/layout.css   # 需要在时间在线的文件  NETWORK:  /wp-admin/   # 替代方案  FALLBACK:  /ajax/ ajax.html

至于如何更新这个配置文件?只要改变文件的内容即可,上面的# VERSION 0.3其实只是一行注释,但改变文件可以重新缓存,这样写上版本号,想更新的时候修改版本号来重新缓存,是一种比较推荐的方法,甚至可以是***实践。

3.给标签加manifest属性

是的,就是如此简单,相信你花上30分钟也就了解了,而且能够快速的应用到工作中。

三、Cache Manifest 存在的问题

经过上面一整,速度明显快了许多,帮忙测试的人也小震惊了一下,只是,还是存在一些问题,看一下,然后我们尝试解决:

1.自动缓存引用了manifest文件的页面

即使在 NETWORK 中指定 "*"(所有的页面都)使用网络,还是不能解决它自动缓存当前页面。这使得这个页面在 manifest 没有变更的情况下,会一直以"类静态"存在。比如,你后台更新了一篇文章,这个动态的首页,还是像***次缓存的时候一样,没有变。这对于静态页面还好,但应用在一个动态系统就很麻烦了,因为你的内容是时时要更新的。

2.Firefox弹出提示信息

可能是习惯了弹窗警告之类的,一不小心,用户还以为是网站被人挂马呢,想把不干净的东西存储到他的电脑。

四、解决方案

(一)关于自动缓存当前页面

在《Pro HTML5 Programming》有这样一句话:这并不是Bug,而是机制的需要。虽然说这样会让页面载入更快,但对于动态页面来说就是恶心了。至少应该有一种让用户选择是否缓存当前页的配置方案(或者说是一个开关)。不过,这是暂时不能解决的,毕竟这还只是一个Draft,我们要用,就应该找一个合适的方案。

我的想法是,看看大家有没有更好的办法。结果,查了一下,无果。新的东西,几乎所有文章说的都只是我上面说的那个如何去写一个manifest文件,看来还是没办法偷懒。然后,便开始想:

◆一定不要缓存动态的页面,当前页一定不能引用 manifest文件。

◆能不能从其他页面先载入缓存?

那么,如果有解决方案的话,解决方法应该是:

◆不在当前页面引用manifest。

◆在用户打开页面之前,需要有一个页面来实现缓存机制。

如果这样,那么为何不试一下iframe来引入一个拥有manifest的静态文件?但用 iframe 还能会缓存到文件?经过一翻测试,Google Chrome的调试工具给了答案:结果很不错,成功缓存。做法是这样的,新建一个cache.html文件来当做为当前页面的代理,内容如下:

                    cache   hi sofish!   

然后,在每个页面通过iframe来引用这个静态文件,以达到我们不缓存当面页面,只缓存我们希望缓存文件的目的。

(二)关于 Firefox 弹出警告问题

这个,浏览器默认的,浏览器厂商的目的是为用户的安全着想,我们暂时也改变不了。其实,也不会有太大的影响,我也没有好好去想。

测试下来,其实跟缓存当前页面还是有差别的,毕竟像站外的链接,特别是gravatar总要请求这么多图片,这点就又多了一点时间了。这现象主要出现在 Firefox 下,而 Webkit 而表示非常棒,速度几乎和缓存当前面一样,第二次打开的页面,都是瞬间响应的,效果非常不错。

关于HTML 5缓存机制中如何进行Cache Manifest配置就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

缓存 页面 文件 方案 机制 配置 内容 还是 动态 只是 用户 问题 静态 更新 测试 不错 就是 文章 解决方案 速度 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 中智农互联网科技 华服互联网科技靠谱吗 互联网科技巨头监管 易互联网科技有限公司 小马过河互联网科技 长亮科技互联网金融 太原新华互联网科技学校怎么样 中国互联网有什么科技含量 互联网系的金融科技公司 湖南一路畅行互联网科技 互联网科技产业特征 中国互联网十大科技股排名 亳州好赞互联网科技有限公司 山东子淼互联网科技有限公司 产业互联网科技服务公司 浙南科技城互联网大厦招聘 广东鹅鹅鹅互联网科技有限公司 互联网界的黑科技 广西泛欧互联网科技有限公司 承德科技产业互联网平台 互联网科技垄断 金融科技和互联网金融 济南华为互联网科技产业总部基地 福州新华互联网科技学校 知乎 常德市电业局互联网科技部 呼和浩特新华互联网科技学院 中国互联网十大科技股排名 中和天地互联网科技有限公司 上海创道互联网络科技有限公司 互联网科技手抄报图片
0