首页 > 网站 > WEB开发 > 正文

css和js引入加版本参数的作用

2024-04-27 15:06:25
字体:
来源:转载
供稿:网友

<link rel="stylesheet" type="text/CSS" href="<c:url value='/scripts/jquery-fancybox/jquery.fancybox.css?v=2.1.4' />" media="screen" />

有时候可能会遇到js或者css文件引用后传递参数:css和js带参数(形如.css?v=与.js?v=)<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’ />使用参数有两种可能:

第一、脚本并不存在,而是服务端动态生成的,因此带了个版本号,以示区别。  即上面代码对于文件来说 等价于

<script type=”text/Javascript” src=”jb51.js”></script>                           <link rel=’stylesheet’ href=’base.css’ type=’text/css’ />        但浏览器会认为他是 该文件的某个版本!

第二、客户端会缓存这些css或js文件,因此每次升级了js或css文件后,改变版本号,客户端浏览器就会重新下载新的js或css文件 ,刷性缓存的作用。大家可能有时候发现修改了样式或者js,刷新的时候不变,就是客户端缓存了css或者js文件,因此加上参数还是有好处的!第二种情况最多,也可能两种同时存在。 版本号,可以是一个随机数,也可以是一个递增的值,大版本小版本的方式,或者根据脚本的生成时间书写,比如 20080727182553 就是精确到了生成脚本的秒,而 2.3.3 就是大版本小版本的方式。 第一次升级:<script src="aaa.js?v=1.0"></script>第二次升级:<script src="aaa.js?v=1.1"></script>第三次升级:<script src="aaa.js?v=1.2"></script>……其中,“v”只是一个名称而已,随便取。这个解决方法跟Ajax请求地址后面添加随机数的原理一样,让浏览器认为访问不同的地址,这样就不会使用缓存的文件了。比如新浪首页在2010年4月5日改版,只是改变CSS样式表,可以在CSS后面,诸如.css?2010.4.5,这样没清理缓存的用户打开新浪首页就不会还是以前的样子,当服务器在读取CSS文件时候会重新读取最新的2010.4.5的,
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表