javascript - 如何在script的src中加Math.random()?
黄舟
黄舟 2017-04-10 14:45:18
0
2
1027

<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(),但貌似不行。

黄舟
黄舟

人生最曼妙的风景,竟是内心的淡定与从容!

全部回复(2)
洪涛

要么用工具干这件事,比如 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()还是推荐你直接用时间戳比较好。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板