如何禁用浏览器脚本缓存?由于系统是纯ajax,部署更新时,发现有些客户端脚本还是部署前的
因为js文件和web页面是分开的,如:demo.aspx和demo.js
demo.aspx引用demo.js时,demo.js代码发生了变化,demo.js部署后,因为脚本缓存的原因,脚本还是部署前的
请问,demo.aspx引用demo.js( <script src="demo.js" type="text/javascript"></script>),能否通过附加一个随机数达到禁用缓存的目的
如果只是几个文件加参数即可,demo.js?v=20130909 ,
demo.js?v=20130909
用常量就可以了,是不是?
@ddxkj: 是的,我一般用日期。如果您用了 Combres.dll 之类的第三方组件,每次发布只要修改一个配置,所有js,css都不从缓存读取,就方便多了。
页面的js可以动态的方式加载,那么你就可以在url加随机数了!哈哈
不失为一种,但还要动态加载,麻烦些了
虽然可以禁用浏览器缓存,可以你控制不了客户端。
一般是把不需要缓存的文件加上版本和时间字符串
如:XXX.js?v=******** 格式,再次请求就不会被缓存了。
把不需要缓存的文件加上版本和时间字符串,请问下上版本和时间字符串是动态生成的吗?如何生成?
@ddxkj: 可以调用时间函数
@Albert Fei: <script src="test.js?rnd="+new Date().valueOf() type="text/javascript"></script>
是不是这样?
@ddxkj: 是不是写到程序里一运行就知道了 要亲自实践。
@ddxkj: 这样写有问题的,如果您没有更新js,这样写不读缓存,效率低了。