我一直在阅读人们在浏览器缓存旧版本的 javascript 文件时遇到的问题,并且在进行更改时不下载新版本。但是,每次我对 js 文件进行更改时,关闭浏览器并打开它(甚至刷新页面)都会反映更改。我已经在 IE9、FF13、Chrome18 和 Safari 5 中尝试过。
较新的浏览器版本是否可以确定是否对 .js 文件进行了更改,然后用缓存中的新版本替换旧版本?
我一直在阅读人们在浏览器缓存旧版本的 javascript 文件时遇到的问题,并且在进行更改时不下载新版本。但是,每次我对 js 文件进行更改时,关闭浏览器并打开它(甚至刷新页面)都会反映更改。我已经在 IE9、FF13、Chrome18 和 Safari 5 中尝试过。
较新的浏览器版本是否可以确定是否对 .js 文件进行了更改,然后用缓存中的新版本替换旧版本?
这与浏览器或浏览器版本无关。这与缓存指令有关。
如果您的服务器正在输出标头,允许客户端缓存资源,那么它将被缓存。如果您的服务器输出标头指示客户端不缓存,那么它(通常)不会被缓存。
另见: http ://www.w3.org/Protocols/rfc2616/rfc2616-sec13.html
如果服务器指定,浏览器会检测是否需要加载新版本Must-Revalidate
。