很长一段时间没有JS代码遇到过这样的问题,我们的系统绝大多数形式都没有防止重复提交。

因为不想在后面处理,好像是由后端处理的,应该在页面加载时给出一个一次性的令牌值,增加工作负载不说,同时也容易忘记这样做,ajax不是很好的交易,需要提交失败的新的令牌值返回。

所以我想在JS方面做这件事。事实上,在前端和前端之前,很长时间都看不到这个动作,而且必须要丢掉一块砖头。这个想法是覆盖ajax,它解决了防止重复提交的问题,而且前端业务开发不受影响,没有代码更改,没有感知。

我认为架构的目标之一是简化业务开发,筛选出与业务无关的细节,让前线开发工作顺利进行。

代码如下:



*由xiayongsheng 2016 / 6 / 12。
* /
(函数($){)
var;
用于存储Ajax请求
无功ajaxstate = { };
无功kinhomajax =函数(){()
var args = array.prototype.slice.call(参数0);
数据,
/ / URL应该被删除,数据的关键值排序,将价值的SHA1值获得的指纹
第一个使用URL作为指纹。
VaR hash =类型参数{ 0 } = 'string'args { 0 }:URL参数{ 0 };
如果(typeof ajaxstate {散}!= 'undefined){
如果(ajaxstate {散} > 3){
警报(请不要重复提交,请求正在处理的);
}
+ + ajaxstate {散};
返回$递延();
}
ajaxstate { } = 1哈希;
VaR DEF = ajax.apply($,args);
Def.done(function(){()
删除ajaxstate {散};
});
返回后;
};
Ajax = kinhomajax美元;
}(jQuery);


以上是关于如何防止JS请求提交重复的知识,希望对您有所帮助。如果你有任何问题,请给我留言,萧边会及时给您回复。谢谢您支持网站。