首页 > 如何在script的src中加Math.random()?

如何在script的src中加Math.random()?

<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() 即可。

要么这么干:

// 伪代码
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()还是推荐你直接用时间戳比较好。

【热门文章】
【热门文章】