Javascript 使用缓存破坏时,缓存文件会发生什么情况?

Javascript 使用缓存破坏时,缓存文件会发生什么情况?,javascript,html,css,web,Javascript,Html,Css,Web,当我们对CSS和Javascript文件使用缓存破坏时,比如通过更改文件名或查询字符串,用户硬盘中已经缓存的文件会发生什么情况?缓存新版本后,是否会删除旧的缓存文件?或者浏览器保存文件的旧版本和新版本的副本?浏览器将保留旧的缓存文件。它不知道任何关于缓存buster的事情,这些只是一堆不同的URL。它无法知道您永远不会再次请求旧URL,因此它不知道不需要缓存 如果缓存太满,它会删除旧文件,所以不用担心。oth,您需要注意,这意味着一旦“破坏缓存”,并不意味着原始缓存现在就消失了。如果您再次请求原

当我们对CSS和Javascript文件使用缓存破坏时,比如通过更改文件名或查询字符串,用户硬盘中已经缓存的文件会发生什么情况?缓存新版本后,是否会删除旧的缓存文件?或者浏览器保存文件的旧版本和新版本的副本?

浏览器将保留旧的缓存文件。它不知道任何关于缓存buster的事情,这些只是一堆不同的URL。它无法知道您永远不会再次请求旧URL,因此它不知道不需要缓存


如果缓存太满,它会删除旧文件,所以不用担心。

oth,您需要注意,这意味着一旦“破坏缓存”,并不意味着原始缓存现在就消失了。如果您再次请求原始的非破坏性URL,您将再次获得较旧的缓存版本。@deceze使用缓存busters的通常方式是,您总是将其添加到URL,因此首先没有“非破坏性URL”。通常是这样,但这里有一个反例:您有一个缓存的REST资源,您发布了一个请求,请求中所述资源正在更新。当您知道该资源已被更新时,将其缓存中断可能会很棘手,但也会继续适当地缓存。您应该在用于检索资源的URL中有一个缓存中断器,因此您永远不会使用缓存值。如果我想使用缓存值(因为性能问题),该怎么办,除非我明确知道资源已更新?