js框架防止重复点击代码

系统中出现了一些问题,仔细查询日志后发现在短时间内用户切同一个单好几次,仔细想想就知道应该是用户连续点击的缘故。当然跟我后台判断的疏漏有关系,但是我认为前台也应该做一些限制措施比较好。

基本的思路是声明一个flag变量,然后点击后变成true,按钮动作完了再变回false。不过我的方法很多,而且很多按钮都是用模板生成的,需要动态生成flag。

	function noRepeat(key){
		if(!!window[key]){
			if(window[key]>4){//重复一定次数发出提醒
                window[key] = 1;
				top.layer.msg("正在处理中,请不要重复点击",{icon:0});
			}
			window[key] ++;
			return true;
		}
		if(typeof(window[key] == "undefined")){//第一次点击声明flag
			window[key] = 0;
		}
		window[key]++;
		return false;
	}
    function button1(){
		if(noRepeat(arguments.callee.name+"Flag")){//方法名+Flag组成动态flag名
			return;
		};
        $.ajax({
			type: "post",
			dataType: "json",
			url: url,
			data: {},
			success: function (result) {
				window[arguments.callee.name+"Flag"] = 0;
			}
		});
    }

arguments.callee.name就是方法名,一般来说方法名是不会重复的,当然也可以换成其他不会重复的关键字。

js可以使用map[key]的方式声明变量真的十分灵活,特别是写框架或者模板的时候,有的页面不会声明全局变量,在模板中使用window[key]就避免了因为没有声明变量而报错了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值