Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/google-chrome/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Chrome何时清除磁盘缓存?_Javascript_Google Chrome_Caching_Browser Cache - Fatal编程技术网

Javascript Chrome何时清除磁盘缓存?

Javascript Chrome何时清除磁盘缓存?,javascript,google-chrome,caching,browser-cache,Javascript,Google Chrome,Caching,Browser Cache,我有一个网站在主页上提供listener.js。我想用一些额外的代码更新这个javascript文件。但是浏览器(尤其是chrome)有内存和磁盘缓存。当然还有HTTP缓存。我试过一些关于那种状态的东西。我尝试了F5,从内存缓存加载的文件。然后我杀死了chrome,再次打开了网站,从磁盘缓存加载了javascript文件。所以我有两个问题 chrome何时清除磁盘缓存 我怎样才能告诉访问者不要使用任何缓存并从我的服务器获取新的javascript文件 更新: 我可以用无缓存Http头执行此操作吗

我有一个网站在主页上提供
listener.js
。我想用一些额外的代码更新这个javascript文件。但是浏览器(尤其是chrome)有内存和磁盘缓存。当然还有HTTP缓存。我试过一些关于那种状态的东西。我尝试了F5,从内存缓存加载的文件。然后我杀死了chrome,再次打开了网站,从磁盘缓存加载了javascript文件。所以我有两个问题

  • chrome何时清除磁盘缓存
  • 我怎样才能告诉访问者不要使用任何缓存并从我的服务器获取新的javascript文件
  • 更新:

  • 我可以用
    无缓存
    Http头执行此操作吗
    
    删除临时缓存的文件,称为缓存破坏。它很有用,因为浏览器不必再次下载这些文件

    如果引起问题,开发者可以强制浏览器下载新文件。这是通过重新命名文件来实现的,但有一种更好的方法

    src="js/listener.js" => src="js/listener.js?v=2"
    
    更新:

    或者像这样的散列
    =>?v=c298c7f8233d
    ,这比
    ?v=2
    更好(注释者)


    (积分:30秒)

    除非选中此选项,否则Chrome不会自动清除磁盘缓存

    Privacy settings > Content settings > Keep local data only until you quit browser
    
    在这种情况下,它会在关闭浏览器时删除缓存

    通常,通过将文件名散列到缓存中来防止客户端将文件保存在缓存中 每个构建,这是最常见的缓存破坏技术。这意味着在每个版本中,您都会有一个新的文件名,而旧的缓存文件并不重要。比如说

    大多数构建工具(如Webpack)都有可以打开的缓存破坏功能


    您根本不想阻止用户缓存,因为缓存非常有用,可以防止重复下载。您只想在构建新版本时阻止下载。

    在chrome中开发时,您可以通过F12禁用缓存,切换到“网络”并选择“禁用缓存”。对于产品,请在js文件后添加一个随机数。e、 g“app.js?10101”.Hash
    (像这样=>?v=c298c7f8233d)
    (?v=2)
    好,为什么要使用Hash?v=2显然更不规范是的,但这不是为了让你理解,而是为了浏览器。到浏览器的
    v=2
    v=timbuktu
    是相同的。如何对html类型文件执行此操作