避免客户端缓存脚本,导致文件升级后用户的脚步未发生变化

Posted 刍荛采葑菲

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了避免客户端缓存脚本,导致文件升级后用户的脚步未发生变化相关的知识,希望对你有一定的参考价值。


在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即可。






以上是关于避免客户端缓存脚本,导致文件升级后用户的脚步未发生变化的主要内容,如果未能解决你的问题,请参考以下文章

速达软件开发版-程序升级

打印机打印失败

iis7 https 发生413错误 未显示页面,因为请求实体过大

升级到 Rails 4.2.5.1 后 nil:NilClass 的未定义方法“缓存”

谈谈缓存的优化

用户从输入URL到看到网页发生了什么?