【发布时间】:2012-03-19 20:48:12
【问题描述】:
我有一个脚本用于我网站上的多个页面。我想设置 expires 标头,以便浏览器缓存它并且不会每次都下载它。没关系,我知道该怎么做,但我不太清楚浏览器是如何工作的。
浏览器是否根据其路径缓存它,然后它是否足够聪明地知道任何请求脚本的页面都应该使用缓存版本,或者脚本和页面之间是否存在关联,因此它必须是缓存到每个页面?
【问题讨论】:
我有一个脚本用于我网站上的多个页面。我想设置 expires 标头,以便浏览器缓存它并且不会每次都下载它。没关系,我知道该怎么做,但我不太清楚浏览器是如何工作的。
浏览器是否根据其路径缓存它,然后它是否足够聪明地知道任何请求脚本的页面都应该使用缓存版本,或者脚本和页面之间是否存在关联,因此它必须是缓存到每个页面?
【问题讨论】:
在浏览器缓存中,URL 和请求页面之间没有连接。浏览器缓存键包含路径,有时还包含查询字符串(请参阅Is it the filename or the whole URL used as a key in browser caches?)。
这就是为什么谷歌推荐使用他们的Libraries API:如果每个需要特定版本 jQuery 的页面都指向浏览器从谷歌获取库,浏览器只会为 www.xyz.com 获取一次,然后重新从 www.abc.com 的缓存中使用它。
【讨论】: