html资源文件动态添加时间戳

使用说明
1.在资源文件引入部分添加script标签

<script>
</script>

2.进行方法配置,writeJsAndCss支持三个参数(公共路径,差异路径,资源类型)

  1. **公共路径:**资源文件的公共部分。例如:“asset/product/js/”
  2. **差异路径:**资源文件的个性化部分。例如:“common/app”
  3. **资源类型:**资源类型目前只支持css和js,默认为js。

3.通过在script标签里调用writeJsAndCss方法,例如: writeJsAndCss(“asset/product/js/”,[“common/app”]);
效果

<script type="text/javascript" src="asset/product/js/common/app.js?v=1559555140339"></script>

4.整段代码

<script>
        /*自定义样式*/
        var routeArry =["a","b","c"];
        writeJsAndCss("asset/product/css/",routeArry,"css");
        function writeJsAndCss(commonRoute,routeArry,type){//支持三个参数,第一个公共路径,第二个文件差异路径,第三资源文件类型css或JS,
            var tempType = type == "js" || type == "css" ? type:"js";
            var timestamp = (new Date()).getTime();
            var route;
            for(var i = 0;i <routeArry.length;i++){
                route = commonRoute + routeArry[i];
                var tempJs = '<script type="text/javascript"  src="'+ route +'.js?v='+timestamp+'"><\/script>';
                var tempCss = '<link rel="stylesheet" href="'+route+'.css?v='+timestamp+'"/>';
                var temp = tempType =="js"?tempJs:tempCss;
                document.write(temp);
            }
        }
    </script>

5.writeJsAndCss提供两种写法分别支持ES5与ES6
ES5写法

function writeJsAndCss(commonRoute,routeArry,type){//支持三个参数,第一个公共路径,第二个文件差异路径,第三资源文件类型css或JS,
        var tempType = type == "js" || type == "css" ? type:"js";
        var timestamp = (new Date()).getTime();
        var route;
        for(var i = 0;i <routeArry.length;i++){
            route = commonRoute + routeArry[i];
            var tempJs = '<script type="text/javascript"  src="'+ route +'.js?v='+timestamp+'"><\/script>';
            var tempCss = '<link rel="stylesheet" href="'+route+'.css?v='+timestamp+'"/>';
            var temp = tempType =="js"?tempJs:tempCss;
            document.write(temp);
        }
    }

ES6写法(使用了ES6的默认参数和模版字符串)

function writeJsAndCss(commonRoute,routeArry,type ="js"){//支持三个参数,第一个公共路径,第二个文件差异路径,第三资源文件类型css或JS,
        var timestamp = (new Date()).getTime();
        var route;
        for(var i = 0;i <routeArry.length;i++){
            route = commonRoute + routeArry[i];
            var temp = type =="js"?`<script type="text/javascript"  src="${route}.js?v=${timestamp}"><\/script>`:`<link rel="stylesheet" href="${route}.css?v=${timestamp}"/>`;
            document.write(temp);
        }
    }

6.写在最后
如果您不想每个script里都写writeJsAndCss方法,建议您创建个js文件,在JS文件里写writeJsAndCss,在head最上面引入,后续直接调用writeJsAndCss,这种唯一的好处就是少了好几行代码,样式更美观一些。缺点就是多建建了一个文件。
7.写在最最后
第一次写,有点啰嗦但绝对详细,高手勿喷。

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值