应用程序缓存或浏览器缓存

Posted

技术标签:

【中文标题】应用程序缓存或浏览器缓存【英文标题】:Application Cache or Browser Cache 【发布时间】:2012-10-24 06:39:41 【问题描述】:

对于我正在构建的 Web 应用程序,我非常依赖应用程序缓存。我注意到我在应用程序缓存中没有明确提到的一些项目(如一些图像文件)正在被浏览器缓存缓存。

所以我面临这个问题:我应该让浏览器缓存管理这些图像文件,还是应该将它们也包含在我的缓存清单中?权衡性能方面的明智之处是什么?

【问题讨论】:

对于那些没有经验的人来说,“ApplicationCache”似乎是一个 html5 功能,与某些服务器端框架可能使用的应用程序缓存不同:html5rocks.com/en/tutorials/appcache/beginner 【参考方案1】:

鉴于您说您严重依赖应用程序缓存,我建议您也将这些图像添加到缓存清单中。

在加快网站速度时,普通浏览器缓存可以正常工作,前提是这些图像发送了适当的缓存 http 标头。但是,浏览器也会偶尔检查这些文件是否已更改。尤其是当用户点击 ctrl-f5(刷新)时。

应用程序缓存在缓存方面更具侵略性,因此我将在缓存清单中添加以下内容:

CACHE:
/path/to/images/

(路径后面不需要*。)

上面的方法可能是首选,因为它会降低链接到不存在文件的风险,因此如果提到的任何文件返回的不是 http 状态,浏览器就会忽略缓存。代码在 200 范围内。

基本上,使用 Appcache 将提高网页性能,并且比普通缓存浏览器已经做到的更可靠。

【讨论】:

是的,我目前正在使用应用程序缓存我的网络应用程序。我想知道这种方法和浏览器缓存方法之间是否存在任何性能权衡。 我已经更新了答案。基本上,使用 Appcache 将提高网页性能,并且比普通缓存浏览器已经做到的更可靠。

以上是关于应用程序缓存或浏览器缓存的主要内容,如果未能解决你的问题,请参考以下文章

分布式缓存-Memcached

通过HTTP Header控制缓存

浏览器缓存

浏览器缓存:强缓存和协商缓存

缓存技术总结

浏览器的缓存策略