iis服务器助手广告
返回顶部
首页 > 资讯 > 前端开发 > VUE >HTML 5缓存机制中如何进行Cache Manifest配置
  • 645
分享到

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

2024-04-02 19:04:59 645人浏览 八月长安
摘要

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

这篇文章给大家介绍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.给<html>标签加manifest属性

<html manifest="path/to/NAME.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文件来当做为当前页面的代理,内容如下:

<!DOCTYPE html> <html  manifest="Http://www.happinesz.cn/sofished.manifest"> <head>         <meta charset=utf-8 />         <title>cache</title> </head> <body> hi sofish!  </body> </html>

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

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

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

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

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

--结束END--

本文标题: HTML 5缓存机制中如何进行Cache Manifest配置

本文链接: https://www.lsjlt.com/news/83031.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • HTML 5缓存机制中如何进行Cache Manifest配置
    这篇文章给大家介绍HTML 5缓存机制中如何进行Cache Manifest配置,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。Cache Manifest是HTML 5的一种缓存机制,...
    99+
    2024-04-02
  • 使用wordpress插件Redis Object Cache进行多站缓存配置,加速网页访问
    Redis Object Cache Pro 是 WordPress 上面一款数据库 缓存插件 ,使用此插件它可以将数据库中的常用值缓存到内存当中,对于一些磁盘速度较慢的服务器来说,使用内存进行数据缓存的效果还是挺明显的。  以我个人测试站...
    99+
    2023-09-02
    redis 缓存 数据库
  • 如何在PHP中使用Memcache缓存技术进行二进制数据存储
    随着互联网应用的不断发展,数据的访问速度越来越成为人们关注的焦点。为了提高数据的访问速度,缓存技术成为了解决方案之一。而在PHP中,Memcache缓存技术被广泛应用于实现数据的缓存,特别是二进制数据的缓存。本文将介绍如何在PHP中使用Me...
    99+
    2023-05-15
    PHP Memcache缓存技术 二进制数据存储
  • 如何使用宝塔面板进行反向代理缓存配置
    要使用宝塔面板进行反向代理缓存配置,您需要遵循以下步骤:1. 登录到您的宝塔面板账户。2. 在面板首页,找到您要配置反向代理的网站,...
    99+
    2023-10-10
    宝塔面板
  • 内存数据库如何在springboot中进行配置
    内存数据库如何在springboot中进行配置?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。1.springboot的Maven工程结构2. 首先引入依赖jar包 pom.xm...
    99+
    2023-05-31
    springboot 内存数据库
  • 如何在 Django 中配置 Python 缓存模块?
    在 Django 开发中,缓存是一个非常重要的概念,因为它可以提高网站的性能和响应速度。Python 作为一门强大的编程语言,也提供了很多缓存模块来帮助我们实现缓存。本文将介绍如何在 Django 中配置 Python 缓存模块。 一、Dj...
    99+
    2023-10-23
    缓存 django windows
  • 如何进行SAP gateway系统和后台系统的OData双重cache机制
    如何进行SAP gateway系统和后台系统的OData双重cache机制,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。# Sent: Friday, ...
    99+
    2023-06-04
  • 如何正确进行Cisco交换机配置
    正确配置Cisco交换机的步骤如下:1. 连接到交换机:使用串口线或网络线将电脑连接到交换机的控制台端口或管理端口。2. 配置终端设...
    99+
    2023-09-05
    Cisco
  • tomcat如何在myeclipse10中进行配置
    这篇文章给大家介绍tomcat如何在myeclipse10中进行配置,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。在myeclipse10中添加tomcat:选择属性preferences之后进入配置框:选择serve...
    99+
    2023-05-31
    myeclipse10 omc tomcat
  • 如何在PHP中使用Memcache进行对象缓存
    随着互联网应用的发展,对于性能和速度的需求也越来越高。而对于PHP开发者来说,常见的性能问题之一就是数据库查询效率。为了提高性能,我们通常会使用缓存技术,其中对象缓存就是一种常见的缓存技术之一。而在对象缓存中,Memcache已经成为了一种...
    99+
    2023-05-16
    PHP Memcache 对象缓存
  • SQL Server中的缓存机制是如何工作的
    非常抱歉,由于您没有提供文章标题,我无法为您生成一篇高质量的文章。请您提供文章标题,我将尽快为您生成一篇优质的文章。...
    99+
    2024-06-03
  • 如何在Python中实现高效的缓存机制?
    Python 是一门高效、易学的编程语言,但在处理大量数据时,常常会遇到性能瓶颈。为了提高程序的运行效率,我们可以采用缓存机制。 缓存机制是将某些计算结果保存在内存中,以便下次需要时能够快速获取。在 Python 中,我们可以利用内置的 f...
    99+
    2023-06-28
    load 缓存 开发技术
  • 如何在SpringBoot中对Swagger进行配置
    如何在SpringBoot中对Swagger进行配置?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。导入SpringBoot集成Swagger所需要的依赖 <...
    99+
    2023-06-06
  • 如何在IDEA中对Docker进行配置
    如何在IDEA中对Docker进行配置?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。配置docker远程连接端口vi /usr/lib/systemd/system/...
    99+
    2023-06-06
  • 如何在CLion中对openMP进行配置
    本篇文章为大家展示了如何在CLion中对openMP进行配置,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。使用MinGW64在Clion中配置openMP的开发 安装MinGW64和CLion配置C...
    99+
    2023-06-06
  • python如何使用内置的缓存机制来提高效率
    这篇文章主要为大家展示了“python如何使用内置的缓存机制来提高效率”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“python如何使用内置的缓存机制来提高效率”这篇文章吧。 使用内置...
    99+
    2023-06-27
  • Standalone模式如何在spark中进行配置
    这篇文章给大家介绍Standalone模式如何在spark中进行配置,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。spark运行模式Spark 有很多种模式,最简单就是单机本地模式,还有单机伪分布式模式,复杂的则运行在...
    99+
    2023-05-31
    spark standalone spar
  • PHP开发中如何使用Memcache进行分布式缓存?
    随着Web应用程序的日益复杂,性能也成为了一个关键问题。在许多应用程序中,数据库查询是最耗费时间的操作之一。为了避免频繁地从数据库中读取数据,可以使用一个缓存系统,将经常读取的数据存储在内存中,以便快速的访问。在PHP开发中,使用Memca...
    99+
    2023-11-07
    PHP Memcache 分布式缓存
  • acl权限如何在zookeeper中进行配置
    acl权限如何在zookeeper中进行配置?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。Zookeeper使用ACL来控制访问Znode,ACL的实现和UNIX的实现非常相似...
    99+
    2023-05-31
    zookeeper acl权限 zookeepe
  • jdk1.7如何在myEclipse环境中进行配置
    这期内容当中小编将会给大家带来有关jdk1.7如何在myEclipse环境中进行配置,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。第一步:下载jdk1.7第二步:安装jdk1.7     将下载的压缩包进...
    99+
    2023-05-31
    myeclipse jdk
软考高级职称资格查询
推荐阅读
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作