我最近一直在学习 JavaScript,并且看到了许多使用 Math.rand() 附加到链接的示例(Face book.com、可读性书签)。
这解决了什么问题? Readability 小书签中的示例参数:
_readability_script.src='http://lab.arc90.com/....script.js?x='+(Math.random());
JavaScript 中是否存在冲突或需要解决的问题?
要点是避免浏览器缓存这些资源。
正如鲁本斯所说,这通常是用来防止缓存的技巧。浏览器通常会非常积极地缓存 JavaScript 和 CSS,这可以节省您的带宽,但在更改脚本时也可能会导致部署问题。
这个想法是浏览器会认为位于 http://www.example.com/something.js?foo 的资源与 http://www.example.com 不同/something.js?bar,因此不会使用本地缓存来检索资源。
http://www.example.com/something.js?foo
http://www.example.com 不同/something.js?bar
可能更常见的模式是附加一个递增值,只要资源需要更改,该值就可以更改。通过这种方式,您可以通过客户端缓存处理重复请求而受益,但在部署新版本时,您可以强制浏览器获取新版本。
就我个人而言,我喜欢将文件的最后修改时间作为 Unix 时间戳附加,这样我就不必在每次更改文件时四处寻找和修改版本号。
要点是避免浏览器缓存这些资源。
正如鲁本斯所说,这通常是用来防止缓存的技巧。浏览器通常会非常积极地缓存 JavaScript 和 CSS,这可以节省您的带宽,但在更改脚本时也可能会导致部署问题。
这个想法是浏览器会认为位于
http://www.example.com/something.js?foo
的资源与http://www.example.com 不同/something.js?bar
,因此不会使用本地缓存来检索资源。可能更常见的模式是附加一个递增值,只要资源需要更改,该值就可以更改。通过这种方式,您可以通过客户端缓存处理重复请求而受益,但在部署新版本时,您可以强制浏览器获取新版本。
就我个人而言,我喜欢将文件的最后修改时间作为 Unix 时间戳附加,这样我就不必在每次更改文件时四处寻找和修改版本号。