Chrome 何时清除磁盘缓存?
When Chrome clears disk cache?
我有一个网站在主页上提供 listener.js
服务。我想用一些额外的代码更新这个 javascript 文件。但是浏览器(尤其是 chrome)有内存和磁盘缓存。当然还有 HTTP 缓存。我尝试了一些关于那个状态的东西。我只尝试了 F5,从内存缓存中加载的文件。然后我杀死 chrome 并再次打开网站,javascript 文件从磁盘缓存加载。所以我有两个问题;
- 什么时候chrome清除磁盘缓存?
- 我怎么能告诉访问者不要使用任何缓存并从我的服务器获取新的 javascript 文件?
更新:
- 我可以用
no-cache
Http header 做到这一点吗?
删除临时缓存的文件称为缓存破坏。这很有用,因为浏览器不必再次下载这些文件。
如果它导致问题,开发人员可以强制浏览器下载新文件。这是通过重命名文件来执行的,但有更好的方法
src="js/listener.js" => src="js/listener.js?v=2"
更新:
或者这样的散列 => ?v=c298c7f8233d
比 ?v=2
更好(Tech Guy 评论)
(学分:30 秒)
Chrome 除非选中此选项,否则不会自动清除磁盘缓存
Privacy settings > Content settings > Keep local data only until you quit browser
在这种情况下,它会在关闭浏览器时删除缓存。
您通常通过散列您的文件名来阻止客户端将您的文件保存在缓存中
每个构建,这是最常见的缓存破坏技术。这意味着在每个版本中,您都会有一个新的文件名,而旧的缓存文件无关紧要。例如
大多数构建工具(例如 Webpack)都具有您可以打开的缓存清除功能。
您根本不想阻止用户进行缓存,因为缓存非常有用并且可以防止重复下载。您只是想在构建新版本时阻止下载。
这个解决方案对我有用。
let randomNum = Math.round(Math.random() * 10000);
src = "js/listener.js?" + randomNum;
每次都会生成一个随机数,会被当做一个新的请求,不会被缓存。
我有一个网站在主页上提供 listener.js
服务。我想用一些额外的代码更新这个 javascript 文件。但是浏览器(尤其是 chrome)有内存和磁盘缓存。当然还有 HTTP 缓存。我尝试了一些关于那个状态的东西。我只尝试了 F5,从内存缓存中加载的文件。然后我杀死 chrome 并再次打开网站,javascript 文件从磁盘缓存加载。所以我有两个问题;
- 什么时候chrome清除磁盘缓存?
- 我怎么能告诉访问者不要使用任何缓存并从我的服务器获取新的 javascript 文件?
更新:
- 我可以用
no-cache
Http header 做到这一点吗?
删除临时缓存的文件称为缓存破坏。这很有用,因为浏览器不必再次下载这些文件。
如果它导致问题,开发人员可以强制浏览器下载新文件。这是通过重命名文件来执行的,但有更好的方法
src="js/listener.js" => src="js/listener.js?v=2"
更新:
或者这样的散列 => ?v=c298c7f8233d
比 ?v=2
更好(Tech Guy 评论)
(学分:30 秒)
Chrome 除非选中此选项,否则不会自动清除磁盘缓存
Privacy settings > Content settings > Keep local data only until you quit browser
在这种情况下,它会在关闭浏览器时删除缓存。
您通常通过散列您的文件名来阻止客户端将您的文件保存在缓存中 每个构建,这是最常见的缓存破坏技术。这意味着在每个版本中,您都会有一个新的文件名,而旧的缓存文件无关紧要。例如
大多数构建工具(例如 Webpack)都具有您可以打开的缓存清除功能。
您根本不想阻止用户进行缓存,因为缓存非常有用并且可以防止重复下载。您只是想在构建新版本时阻止下载。
这个解决方案对我有用。
let randomNum = Math.round(Math.random() * 10000);
src = "js/listener.js?" + randomNum;
每次都会生成一个随机数,会被当做一个新的请求,不会被缓存。