经常遇到页面里加载的js与css文件带有参数,比如:
<script type="text/javascript" src="jb51.js?version=1.2.6"></script><link rel='stylesheet' href='base.css?version=2.3.3' type='text/css' />
使用参数有两种可能,
脚本并不存在,而是服务端动态生成的,因此带了个版本号,以示区别。
客户端会缓存这些css或js文件,因此每次升级了js或css文件后,改变版本号,客户端浏览器就会重新下载新的js或css文件
第二种情况最多,也可能两种同时存在。
版本号,可以是一个随机数,也可以是一个递增的值,大版本小版本的方式,或者根据脚本的生成时间书写,比如 20170104205959 就是精确到了生成脚本的秒,而 2.3.3 就是大版本小版本的方式。
因为浏览器默认会缓存网站的css,js这些静态资源,当然你可以配置服务器让浏览器不要缓存这些资源,但是作为前端优化来说,缓存一定程度上也是需要的,只有我们更新了该css文件时,才需要重新请求该文件,所以,可以通过添加查询字符串,让浏览器重新请求该css文件\x0d\x0a\x0d\x0a一般考虑这样的查询字符串是该文件的版本号,或者更新的时间戳,或者根据文件状态产生的hash值\x0d\x0a总体来说是为了处理浏览器缓存的。\x0d\x0a这个在微信平台开发,非常有用哦CSS和JS文件名后带参数一般来说有两个作用
每次打开页面引用的JS和CSS文件后都会有不同的参数,这是为了防止浏览器缓存
对JS和CSS文件进行版本控制