84669 person learning
152542 person learning
20005 person learning
5487 person learning
7821 person learning
359900 person learning
3350 person learning
180660 person learning
48569 person learning
18603 person learning
40936 person learning
1549 person learning
1183 person learning
32909 person learning
<link rel="stylesheet" type="text/css" href="css/ratchet.css?"> <link href="css/app.css?" rel="stylesheet"> <script src="js/modal.js?"></script> 我希望在“?”后面加Math.random(),但貌似不行。
人生最曼妙的风景,竟是内心的淡定与从容!
要么用工具干这件事,比如 grunt-timestamp, grunt-replace 之类的插件打时间戳。实际上扫一眼这些插件,把时间戳结果换成 Math.random() 即可。
Math.random()
要么这么干:
// 伪代码 var url = 'js/modal.js?' + Math.random(); var script = document.getElementsByTagName('script')[0]; script.src = url;
第二个办法真的实践起来本身就有很多问题,更别谈维护问题了。
以上是思路。。。最终结果是改静态资源文件路径,想办法搞定这件事就行了。
new loadSource("js/modal.js"); new loadSource("css/app.css"); function loadSource(src){ this.src = src; var type = src.split(".").pop(); loadSource.prototype.loadJS = loadSource.prototype.loadjs = function() { var s = document.createElement('script'); s.src = this.src+"?"+Math.random(); s.async = true; document.head.appendChild(s); } loadSource.prototype.loadCSS = loadSource.prototype.loadcss = function() { var c = document.createElement('link'); c.rel = 'stylesheet'; c.href = src+"?"+Math.random(); document.head.appendChild(c); } if(this["load"+type]) this["load"+type](); }
大概的代码就是这样,手打的可能有些错误,不过比起Math.random()还是推荐你直接用时间戳比较好。
要么用工具干这件事,比如 grunt-timestamp, grunt-replace 之类的插件打时间戳。实际上扫一眼这些插件,把时间戳结果换成
Math.random()
即可。要么这么干:
第二个办法真的实践起来本身就有很多问题,更别谈维护问题了。
以上是思路。。。最终结果是改静态资源文件路径,想办法搞定这件事就行了。
大概的代码就是这样,手打的可能有些错误,不过比起
Math.random()
还是推荐你直接用时间戳比较好。