我最近一直在学习JavaScript,并且我已经看到了一些使用Math.rand()附加到链接的示例(Facebook.com,可读性书签).
这解决了什么问题?可读性bookmarklet中的示例参数:
_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
,因此不会使用它们的本地缓存来检索资源.
可能更常见的模式是附加递增值,只要资源需要更改,就可以更改该递增值.通过这种方式,您可以通过客户端缓存提供重复请求获益,但在部署新版本时,您可以强制浏览器获取新版本.
就个人而言,我喜欢将文件的最后修改时间附加为Unix时间戳,因此每当我更改文件时,我都不必去打猎并碰撞版本号.