让html页面不缓存js的实现方法
很多朋友都会碰到这样的情况:如果我们页面加载了js的话下次打开时也会是调用这个js缓存文件,但对于我们调试时是非常的不方便了,本文就来谈论如何解决这一问题,下面一起来看看。
不缓存JS的方法其实挺简单,CSS在某种条件下也可以如此使用;
先让大家了解下不缓存的一个简单的原理:
当浏览不同Url时,浏览器会自动将当前访问的地址进行一次缓存;而第二次访问时着调用缓存下来的页面,从而达到页面快速加载(页面加载优化)的目的;
因此,我们可以给页面后面设定个不同的值,让页面保持没错访问的不同即可达到不缓存的目的了!
下面是个简单的示例:
<script>
document.write("<script type='text/javascript' src='/js/test.js?"+Math.random();+"'></script>");
</script>
document.write("<script type='text/javascript' src='/js/test.js?"+Math.random();+"'></script>");
</script>
其他的类似,只需在地址后加上+Math.random()
注意:因为Math.random() 只能在Javascript 下起作用,故只能通过Javascript的调用才可以
最后加一个ajax也不让缓存的方法
xmlHttp.open("GET", "ajax.asp?now=" + new Date().getTime(), true);
记得后面的now=" + new Date().getTime()是重点,需要带参数的。
可以考虑引入js部分给js文件加入一个随机数作为参数.
比如:
1
2
3
4
|
<script type= "text/javascript" src= "/js/myjs.js" ></script> // 修改为 <script type= "text/javascript" src= "/js/myjs.js?randomId=<%=Math.random()%>" ></script> |
注: 只是给个思路. 后面那个randomId=<%=Math.random()%>需要你自己考虑下.
可以是当前时间戳+一个随机数字之类的.