urlArgs解决Require.js浏览器缓存问题

urlArgs解决Require.js浏览器缓存问题

通常项目上线后,可能会存在浏览器缓存导致代码未更新的问题,最简单的办法就是添加版本号,示例如下:

<script src="a.js?v=xx"></script>
<link rel="stylesheet" type="text/css" href="b.css?v=xx">

但是如果项目中是通过require.js加载的文件(js/tpl)的情况,.tpl文件可以直接在路径后添加版本号,.js文件直接添加版本号会报错,所以需要通过urlArgs解决版本号问题。

urlArgs:附加到URL的额外查询字符串参数,RequireJS使用这些参数来获取资源。

require.config({
    //固定版本号
	urlArgs: "v=xxxxx"
    //时间戳版本号
    //urlArgs: "v="+new Date().getTime()
});

通过以上任意一种方式都可以破坏浏览器缓存。

根据要求2.2.0,urlArgs可以是一个函数。如果是函数,它将接收模块ID和URL作为参数,并返回一个将添加到URL末尾的字符串。如果没有参数,则返回空字符串。一定要注意添加“?”或“&”取决于URL的现有状态,例如:

requirejs.config({
    urlArgs: function(id, url) {
        var args = 'v=1';
        if (url.indexOf('view.html') !== -1) {
            args = 'v=2'
        }

        return (url.indexOf('?') === -1 ? '?' : '&') + args;
    }
});
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值