我正在阅读这个源代码:
https://github.com/leobalter/PimpMyCode/blob/master/index.html#L20
<script src="js/compiled.min.js?v=125" async></script>
如果你摆脱整行,CodeMirror部分就会消失。但您可以将数字更改为您想要的任何内容,文本框将保留。
?v=125
做什么查询?
我从未见过有人使用此功能。
答案 0 :(得分:7)
它会破坏浏览器缓存(即更改浏览器用于识别缓存文件的文件的URL,强制浏览器在查询字符串值发生更改时重新下载文件。)
当您希望将更新部署到文件并让所有用户立即获得更改时,这非常有用,而不必等待其缓存清除或手动清除。
价值本身并不重要。它不会更改输出,服务器也不会使用它。它只是迫使浏览器下载新版本。
答案 1 :(得分:2)
.js
资源等静态文件通常配置为由浏览器缓存很长时间(1年)。通过在缓存中使用资源,用户可以获得更快的加载时间。
难题是:如果用户在缓存中有我的JavaScript文件,我如何保证所有用户一次性使用更新的文件?
输入querystring参数。 ?v=125
是一个标识符,可能是某种版本号。修改和释放资源时,此数字(或字符串)将更改为新的未使用值。附加到资源名称的参数会导致资源像缓存一样处理全新文件。因此,即使用户在缓存中有script.js
或script.js?v=124
,也会直接从服务器加载script.js?v=125
,其中包含所有最新和最好的代码。
接受的答案包含一个奇怪的短语。 “它打破了浏览器缓存”听起来很危险!没关系,因为这不是字面会发生什么。缓存很好。实际上,旧的?v=124
文件仍然存在!独特的资源命名方案只会导致无害的缓存未命中。