• 主页
  • ASP
  • .NET Framework
  • Web Services
  • VB
  • VC
  • 图表区
  • 分析与设计
  • 组件/控件开发
  • LINQ

xxx.css?v=23423324234和yyyyy.js?v=234234324这样有什么好处呢?有的网站是这样做的。

不懂必须要问 2014-01-05 02:45:35
xxx.css?v=23423324234和yyyyy.js?v=234234324这样有什么好处呢?有的网站是这样做的。
...全文
295 点赞 收藏 15
写回复
15 条回复
by_封爱 2014年01月08日
如果你的网站已经做好了 就没什么用了 除非你来回修改..否则就是装B用的.
回复 点赞
myhope88 2014年01月08日
保证是最新版本的吧
回复 点赞
不懂必须要问 2014年01月07日
引用 4 楼 sp1234 的回复:
在IIS之类的上面,可能需要设置自动为所有asp.net请求的返回内容加上消息头 Expire:-1。那么有的人不知道要加这个,或者不容易加(比如说IIS被不太懂维护的人把持着不让碰),那么可能就会在代码中来这样写。 但是代码中这样写,实际上是极其有害的。 在IE浏览器,可能是兼容10年前的ie的原因吧,有这比较变态地“客户端缓存”强迫症。也就是说正常页面(服务器端明明更新了内容而且之前也没有什么错误的消息头设置的页面)、不管你如何禁止客户端缓存,除了手动去ie浏览器的“设置”里边清理,否则ie总是不去访问服务器而直接拿出客户端缓存内容。这在chrome、firfox浏览器中几乎没有,而主要是ie浏览器出现这类bug。于是微软其实会建议所有的web服务器都要默认支持 Expire:-1 这个设置。 现在来说这种 ?随机数 的方法的危害。实际上网站需要高效率!也就是说,服务器端如果改变了文件,那么客户端就应该赶紧刷新,也就是说应该总是默认 Expire:-1 的设置;而如果服务器端没有改变文件,那么它就应该使用304状态来通知客户端拿出客户端缓存,只有这样才能保证网页效率。 你的页面上有成百上千需要304状态的内容。如果你写这种 ?随机数 的写法,你要知道,你就没有这个能力了!
受教,SP大哥又出现了
回复 点赞
机器人 2014年01月06日
js, css 客户端浏览器会缓存。为了服务端能够控制这些缓存(有时候需要客户端取最新的), 于是就有 xxx.js?v=123 这样的处理, v=123 是服务端可以控制的。修改v的值就可以让客户端取最新的。
回复 点赞
Ahoo 2014年01月06日
一般是为了解决 修改JS/CSS 文件时 客户端 无法获取到最新版本的 Js/Css 文件(浏览器缓存机制)
回复 点赞
ltcszk 2014年01月06日
引用 4 楼 sp1234 的回复:
在IIS之类的上面,可能需要设置自动为所有asp.net请求的返回内容加上消息头 Expire:-1。那么有的人不知道要加这个,或者不容易加(比如说IIS被不太懂维护的人把持着不让碰),那么可能就会在代码中来这样写。 但是代码中这样写,实际上是极其有害的。 在IE浏览器,可能是兼容10年前的ie的原因吧,有这比较变态地“客户端缓存”强迫症。也就是说正常页面(服务器端明明更新了内容而且之前也没有什么错误的消息头设置的页面)、不管你如何禁止客户端缓存,除了手动去ie浏览器的“设置”里边清理,否则ie总是不去访问服务器而直接拿出客户端缓存内容。这在chrome、firfox浏览器中几乎没有,而主要是ie浏览器出现这类bug。于是微软其实会建议所有的web服务器都要默认支持 Expire:-1 这个设置。 现在来说这种 ?随机数 的方法的危害。实际上网站需要高效率!也就是说,服务器端如果改变了文件,那么客户端就应该赶紧刷新,也就是说应该总是默认 Expire:-1 的设置;而如果服务器端没有改变文件,那么它就应该使用304状态来通知客户端拿出客户端缓存,只有这样才能保证网页效率。 你的页面上有成百上千需要304状态的内容。如果你写这种 ?随机数 的写法,你要知道,你就没有这个能力了!
有些浏览器不根据文件头判断是不是要缓存,比如360高速 后面那串是版本号,也就是文件修改时变更,没改变的时候依然回发304 asp.net框架里也有 http://www.asp.net/mvc/tutorials/mvc-4/bundling-and-minification 可以自动把js和css进行压缩合并,改变的时候自动更新版本号
回复 点赞
md5e 2014年01月06日
版本控制,因为js和css是长期存在于IE缓存中的(除非用户强制清除),否则同名称的文件是不会再次向服务器请求的 所以需要用到版本号来进行控制,每次有更改样式或js后都会重新在页面的引用上加上一个版本号,当然你也可以强制设置不缓存
回复 点赞
bwangel 2014年01月05日
这个也有可能是服务端作了重定向,根据参数去给客户端传递不同的内容也未可知。
回复 点赞
以专业开发人员为伍 2014年01月05日
网页“使用客户端缓存”需要区分两种情况。一种是浏览器根本不访问服务器,而直接拿出客户端缓存;另一种是服务器返回304状态,然后浏览器拿出客户端缓存。 如果不区分这两种,可能就会错误地解释这个写法的意义。实际上只有第一种情况出现时才会这样写,而那种情况是要避免的
回复 点赞
以专业开发人员为伍 2014年01月05日
看到滥用 ?随机数 的写法代码,所有的人都要有个警觉。 原本一个xxx.css文件可以重复使用10万遍(仅需要给客户端简单地返回一个304状态码就行了),但是这代码却要让你的网站服务器10万次地给客户端查询xxx.css文件和输出整个文件,你说这不是坑爹吗? 这类代码的出现是很无奈的,并不是好办法,是不得已时才不得不写上的。
回复 点赞
以专业开发人员为伍 2014年01月05日
在IIS之类的上面,可能需要设置自动为所有asp.net请求的返回内容加上消息头 Expire:-1。那么有的人不知道要加这个,或者不容易加(比如说IIS被不太懂维护的人把持着不让碰),那么可能就会在代码中来这样写。 但是代码中这样写,实际上是极其有害的。 在IE浏览器,可能是兼容10年前的ie的原因吧,有这比较变态地“客户端缓存”强迫症。也就是说正常页面(服务器端明明更新了内容而且之前也没有什么错误的消息头设置的页面)、不管你如何禁止客户端缓存,除了手动去ie浏览器的“设置”里边清理,否则ie总是不去访问服务器而直接拿出客户端缓存内容。这在chrome、firfox浏览器中几乎没有,而主要是ie浏览器出现这类bug。于是微软其实会建议所有的web服务器都要默认支持 Expire:-1 这个设置。 现在来说这种 ?随机数 的方法的危害。实际上网站需要高效率!也就是说,服务器端如果改变了文件,那么客户端就应该赶紧刷新,也就是说应该总是默认 Expire:-1 的设置;而如果服务器端没有改变文件,那么它就应该使用304状态来通知客户端拿出客户端缓存,只有这样才能保证网页效率。 你的页面上有成百上千需要304状态的内容。如果你写这种 ?随机数 的写法,你要知道,你就没有这个能力了!
回复 点赞
小猪八Q 2014年01月05日
顶楼上的,同样的Url,浏览器在访问的时候,可能存在缓存。有些网站不需要,或者显示一些实时数据,就需要这样的处理。
回复 点赞
zhujiazhi 2014年01月05日
强制刷新,去除缓存
回复 点赞
种草德鲁伊 2014年01月05日
如果这两个文件更新了,改变后面的参数可以让浏览器取消原来的缓存
回复 点赞
发动态
发帖子
.NET技术社区
创建于2007-09-28

4.9w+

社区成员

66.8w+

社区内容

.NET技术交流专区
社区公告
暂无公告