让html页面不缓存js的实现方法
2020-03-27 本文已影响0人
houxin
很多朋友都会碰到这样的情况:如果我们页面加载了js的话下次打开时也会是调用这个js缓存文件,但是如果某些文件是存在实时变化的量的时候,或者我们调试的时候,就很不方便。
不缓存JS的方法其实挺简单,下面给出代码。
原理就是可以给页面后面设定个不同的值,让页面保持没错访问的不同即可达到不缓存的目的了!
下面是个简单的示例:
代码如下:
<script>
document.write("<script type='text/javascript' src='/storage/exam/js/js_url.js?ver="+Math.random()+"'><\/script>");
</script>
其他的类似,只需在地址后加上+Math.random()
注意:因为Math.random() 只能在Javascript 下起作用,故只能通过Javascript的调用才可以
另外的朋友会有如下的写法[这种方法不建议使用]
<script>
let domain = 'http://exam.coco77com.cn';
let head = document.getElementsByTagName('head')[0];
let script = document.createElement('script');
script.type = 'text/javascript';
script.src = domain + '/storage/exam/js/js_url.js?v=' + Math.random();
head.appendChild(script);
</script>
这种方法就是创建一种script的节点,然后新增src属性,达到动态加载的目的。 确实能解决问题,但是场景很有限。
这里说下这种方法缺点,这种方式创建的script的加载是最后加载的,如果你的网页中首次加载的时候,有依赖这个js的变量的话,则会报错显示。