我有一个网站在主页上提供listener.js
。我想用一些额外的代码更新这个javascript文件。但是浏览器(特别是chrome)有内存和磁盘缓存。当然也是HTTP缓存。我尝试了一下这种状态。我试过F5,从内存缓存加载的文件。然后我杀了chrome并再次打开网站,从磁盘缓存加载javascript文件。所以我有两个问题;
更新:
no-cache
Http标题做到这一点吗?删除临时缓存的文件称为缓存清除。它很有用,因为浏览器不必再次下载这些文件。
如果它导致问题,开发人员可以强制浏览器下载新文件。这是通过重命名文件来执行的,但有更好的方法
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)都具有可以打开的缓存清除功能。
您根本不想阻止用户进行缓存,因为缓存非常有用并且可以防止重复下载。您只是想在构建新版本时阻止下载。