开发中复写框架函数的问题

最近开发遇到一个问题:需要把项目所有ajax请求的参数加上一个随机数(用于清缓存),但是项目有40多个ajax请求,不想手动去修改,于是自己想试着修改jQuery的ajax源码,最后也达到目的了,后来又优化(或者说改进)了一下方法,在博客上mark下以后用。

首先是用来的做法:

ajax: function( url, options ) {
            if(url.data != undefined)
                url.data.random = Math.random();
            else
                url.data = {random:Math.random()}; 
            ···
            (省略号后面是jQuery写ajax的500多行源码)
    }

比较简单粗暴直接修改jQuery的ajax源码,然后打包就可以实现目的

但带来问题是:后续修改不方便,以及如果是不使用打包工具,比如直接用jquery.min.js的同学,他可能进行修改就很痛苦了。

后来在SF社区找到一个方案,复写$.ajax函数,代码是:

 $.ajax = (function(ajax) {
    return function(url, data) {
        url.data != undefined ? 
        url.data.randomnumber = Math.random() :
        url.data = {randomnumber:Math.random()};
        return ajax.call($, url, data);
    };
 })($.ajax);

这样,即便是用jquery.min.js也可以直接在文件后面加上这段代码,后续修改起来也很方便。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值