我想我记得那与告诉浏览器不要缓存它或其他东西有关。这对生产中的浏览器缓存和应用程序性能有何影响?这个数字何时改变?
<script src="/javascripts/rails.js?1271798101" type="text/javascript"></script>
答案 0 :(得分:8)
该数字是文件的最后修改时间,自Unix纪元以来的秒数(如果在unix中运行stat -c "%Y" javascripts/rails.js
,则会得到与脚本标记中附加的数字相同的数字)。下次修改文件时,该数字将会更改。
它的作用是告诉您的浏览器可以缓存该javascript文件,并继续使用缓存版本,直到您修改该文件并因此更改该数字。
答案 1 :(得分:2)
它并没有真正告诉浏览器不要缓存它 - 浏览器单独缓存每个查询字符串,所以如果下一个请求是rails.js?9283482934,那么这是一个需要从服务器
这可以告诉浏览器缓存文件,但是通过使用新编号更新html文件,您可以强制所有客户端浏览器下载新版本,而无需实际更改新文件。
使用该号码的原因是允许客户端缓存它,但也允许您强制更新 - 因此它不应对性能产生负面影响。但是,如果您以编程方式为每个请求生成随机数,则会强制所有客户端始终请求该文件,从而有效地禁用该文件的缓存。