什么是HTML5 APPcache

什么是HTML5 APPcache,第1张

AppCache 在 HTML5 规范中进行定义,通过它可创建脱机 Web 应用程序。AppCache 使网页能够在本地缓存(或保存)资源,包括图像、脚本库和样式表等。此外,AppCache 还允许使用标准的统一资源标识符 (URI) 表示法从缓存内容中提供 URL。

使用 AppCache 在本地保存资源,你可以通过减少主机服务器的请求数量来改善网页性能;此外,你还可以脱机访问缓存的资源。

若要在本地缓存资源,需要执行下列 *** 作:

1. 创建一个清单文件,以指定你要保存的资源。

2. 在要使用缓存资源的每个网页中引用该清单文件。

这应该跟每个浏览器的版本实现机制有关系。

chrome 版本 31.0.1650.63

测试结果:如果把js放在index.html的body底部,那么就可以实现clock.js的app cache,但是clock.css是不行的。

ff 版本 28.0

测试结果:只能实现cache.html本身的缓存。

所以目前看来当初的这种HACK机制,只是在某个浏览器的某个版本支持。类似的问题的答案在stackoverflow上也有。不过,在用APP CACHE开始之前,还是要三思为何要用。APP CACHE 的提出是为了打造离线应用,也就是说离线后,应用可以通过依赖本地缓存文件达到正常使用。

如果说非要不缓存当前页面,目前看起来只能通过AJAX来动态加载页面的动态内容来解决了。

手机缓存原理如下:

1.假如入我们要访问一个网站的主页,它的html标签有个manifest属性。

2.页面从服务器端返回,包括动态资源和静态资源,同时静态资源会采用浏览器常规的缓存方式缓存起来。

3.当浏览器解析页面时,发现他的html标签有一个manifest属性,浏览器会在后台把manifest文件中要cache片段所指定的资源下载并缓存在application cache中(在这种情况cache中的资源会再次下载)

4.这时候如果你把浏览器设置为离线浏览,你在manifest文件的network片段中指定需要联网访问的资源,这时会不可用,但是在cache片段的资源没有影响。

4.1 这时候你访问cache中的资源,会直接从appcache中取得缓存中的内容

4.2这时候你访问network中的资源,会显示fallback中指定的资源

下面你如果取消离线模式,重新连上网,后续的过程如下

1.返回线上模式

2.你在服务器端改变一个文件的内容【如cache.html】

3.这时候重新加载cache.html,页面上会显示从appcache中加载的原来的内容,即使你联网了,内容仍然没有改变,这是因为一旦一个文件在appcache中缓存,以后会永远呈现第一次记载的内容,

4.这时候浏览器会检查manifest文件是否更新,如果没有更新,就不会做任何事。

注意:只有manifest文件改变,缓存中要更新的文件才能更新


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/7535736.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-06
下一篇 2023-04-06

发表评论

登录后才能评论

评论列表(0条)

保存