在js路径后跟 ?v=... 的作用:避免客户端缓存脚本,导致文件升级后用户的脚步未发生变化。
什么文件会被浏览器缓存?当然是大多数静态文件--也就是很长一段时间都不会修改的文件,js文件也属于该类。
asp、php、jsp这类动态页面--没多少时间内容就会改变的文件一般会取消或者是缩短缓存失效的时间
这里jquery.js?v=1.3.2,后面的?v=1.3.2对访问这个文件没有任何影响,只是为了换一个url而已,浏览器判断是否需要从缓存中加载,就是通过url
这样写也不成问题
jquery.js?1
jquery.js?v=20080101
jquery.js?t=囧
我们来设想一个场景:
你开发了一个a.asp的网页,其中加载了jquery.js
用户使用了一段时间,这时新的需求又来了,你得在jquery.js增加一个新的函数b
a.asp中调用了这个函数
这时候用户打电话来问你,怎么我的浏览器报错---b函数没有找到
原因就是:浏览器没有缓存a.asp但缓存了jquery.js
那就你回电话告诉用户,“请你清除一下浏览器的缓存吧!”
问题解决了。但当你的用户是几千人时,那你可能收到几百个电话(一些用户可能就放弃你的产品了)
如果你不想这些用户碰见“b函数没有找到”的异常,那只需要改改a.asp引用jquery.js的url即可。
a.asp中调用了这个函数
这时候用户打电话来问你,怎么我的浏览器报错---b函数没有找到
原因就是:浏览器没有缓存a.asp但缓存了jquery.js
那就你回电话告诉用户,“请你清除一下浏览器的缓存吧!”
问题解决了。但当你的用户是几千人时,那你可能收到几百个电话(一些用户可能就放弃你的产品了)
如果你不想这些用户碰见“b函数没有找到”的异常,那只需要改改a.asp引用jquery.js的url即可。