我在一些惠普(HP)的代码中看到,在JavaScript文件名后面有一个问号和数字,似乎是日期或其他什么东西。JavaScript文件名后面的“?”和数字是用来做什么的呢? 例如:
<script type="text/javascript" src="/folder/js/folderPageNextSubmit.js?20140801"></script>
我在一些惠普(HP)的代码中看到,在JavaScript文件名后面有一个问号和数字,似乎是日期或其他什么东西。JavaScript文件名后面的“?”和数字是用来做什么的呢? 例如:
<script type="text/javascript" src="/folder/js/folderPageNextSubmit.js?20140801"></script>
这是用于缓存破坏的,例如:
file.js?1234
file.js?12345
浏览器将它们视为两个不同的文件,因此即使第一个文件被缓存,第二个文件仍将被获取。
当您更改文件代码并部署后,您需要更改编号,以便用户可以看到您的新更改并加载新文件。
init.js
,当你第一次访问我的网站后,我更新了它,然后你再次访问时,你的浏览器可能不会下载我的更新文件,而只是使用它缓存中的文件。init.1234.js
这样的方式,有些浏览器每次都会下载文件,所以使用URL参数方法可能不是最好的选择。强制重新加载文件而不使用缓存中的副本是一种常见的策略。通过这种方式添加时间戳可以强制重新加载。
一般来说,URL 中的 ?
表示路径结束和查询参数开始。
因此,在您的脚本标签中:
<script type="text/javascript" src="/folder/js/folderPageNextSubmit.js?20140801"></script>
"/folder/js/folderPageNextSubmit.js"
,并在URL的末尾添加了查询参数?20140801
。20140801
可能是表示1/08/2014日期代码,这意味着服务器将提供与该日期代码匹配的特定版本文件。