大橙子网站建设,新征程启航
为企业提供网站建设、域名注册、服务器等服务
小编给大家分享一下HTML5缓存机制是什么意思,希望大家阅读完这篇文章后大所收获,下面让我们一起去探讨吧!
成都创新互联公司是一家业务范围包括IDC托管业务,网页空间、主机租用、主机托管,四川、重庆、广东电信服务器租用,川西大数据中心,成都网通服务器托管,成都服务器租用,业务范围遍及中国大陆、港澳台以及欧美等多个国家及地区的互联网数据服务公司。背景
离线缓存是HTML5提供的新功能。利用HTML5提供的离线缓存功能可以将站点的一些常用的文件缓存到本地,在没有网络的情况下依旧可以访问缓存的页面。可以被缓存的文件类型有很多,包括但不限于html,css,js,静态图片资源等。
事实上,离线缓存不仅仅在没有网络的情况下会被使用,当有网络的情况下,本地缓存过的文件依旧会被优先使用。有网络的情况下,浏览器会返回200,
离线缓存有很多好处。第一,可以有效提高用户体验,节约用户流量。第二,可以提高页面加载速度,已缓存的资源加载的更快。第三,可以减少服务器负载,浏览器将只从服务器下载更新过或者更改过的资源。
浏览器支持
基本上所有的主流浏览器都支持,除了 IE,毕竟奇葩,像这种浏览器,还是不要去兼容了。
Manifest
要想在页面上使用离线缓存,只需要在页面的html 加入一个manifest属性,使用方法如下。
…
当浏览器加载页面的时候,发现html上面拥有属性mannifest,就会去请求cache.appcache文件(ps:这只是一个文件名,一般约定以。appcache结尾,文件一般放在项目的根目录下)
btw: mannifest这个文件需要配置 MIME-type为 “text/cache-manifest”,这是必须的。你需要在服务器上进行配置。
我们来看一下manifest这个文件(cache.appcache)应该怎么写
我从w3School找到了这些资料 :
CACHE MANIFEST - 在此标题下列出的文件将在首次下载后进行缓存
NETWORK - 在此标题下列出的文件需要与服务器的连接,且不会被缓存
FALLBACK - 在此标题下列出的文件规定当页面无法访问时的回退页面(比如 404 页面)
cache.appcache文件如下
# CACHE MANIFEST是必须的! CACHE MANIFEST /style.css /logo.png /app.js # 不缓存的文件,永远不会被缓存,且离线时是不可用的 NETWORK: login.js # 可以使用星号来指示所有其他资源/文件都需要因特网连接: NETWORK: * # 注释:获取不到资源时的备选路径,就跳转到指定页面 FALLBACK: index.html 404.html
怎么更新缓存
如同文章开始时说的那样,浏览器发现html上有manifest文件时会先去请求cache.appcache文件,再根据manifest文件的内容进行缓存。具体的流程如下
在线情况下,如果是第一次访问应用,浏览器就会根据manifest文件的内容下载相应的资源并且进行离线存储。如果已经访问过应用并且资源已经离线存储了,那么浏览器就会使用离线的资源加载页面,然后浏览器会对比新的manifest文件与旧的manifest文件,如果文件没有发生改变,就不做任何操作,如果文件改变了,那么就会重新下载文件中的资源并进行离线存储。
而离线情况下,浏览器就直接使用本地的缓存。 有没有发现一个问题,如果我们更新代码了之后,浏览器还是使用了原来的缓存怎么办。
最简单粗暴的方式就是手动清除浏览器的缓存,这当然很大程度在生产环境上是不会这样处理的。
修改manifest的方式
以 “#” 开头的是注释行,但也可满足其他用途。应用的缓存会在其 manifest 文件更改时被更新。如果您编辑了一幅图片,或者修改了一个 JavaScript 函数,这些改变都不会被重新缓存。更新注释行中的日期和版本号是一种使浏览器重新缓存文件的办法。
看完了这篇文章,相信你对HTML5缓存机制是什么意思有了一定的了解,想了解更多相关知识,欢迎关注创新互联成都网站设计公司行业资讯频道,感谢各位的阅读!
另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。