如 $.ajax({   url : url,   success : function(ret) {    if (!noProgress){cniia.closeProgress();}    if (onSuccess) {     onSuccess(ret);    }   },   error : function(data) {    if (!noProgress){cniia.closeProgress();}    cniia.showAlert("服务器错误,请稍候访问!&…
在jquery中防止ajax重复提交…
如下一段代码: 先忽略我没引jquery.js的问题,这是一个案例. 当我们点击提交时,控制台输出两次e,在network里查看,可以看到我们的ajax传输了两次,造成了数据重复提交. 一种解释为button的type为submit,和type='button'不同,submit有自己的默认行为,也就是说当你点击了他之后,他就会进行提交,从而导致重复提交,而type=button需要进行 ajax的跳转才能实现提交功能.所以解决办法,就是将submit换成button. 但是我是jquery创建…
项目用到js了,首选jquery,能用库用库,原则. 碰到重复提交的问题,禁止住才行.百度google,还是Google给力. 知乎上有个高人,总结了四种,利用Jquery .post方法返回jqXHR对象,调用State()判断状态来做,这个是比较好的.需要注意的是1.5以上才行,我直接1.9搞起了.原来1.4用不了,1.4返回的是xhttprequest啥的,不好使. 直接转文章吧,自己码字也不如人家好. http://www.zhihu.com/question/19805411 长天之云…
利用jquery ajaxPrefilter中断请求 var pendingRequests = {}; $.ajaxPrefilter(function( options, originalOptions, jqXHR ) { var key = options.url; console.log(key); if (!pendingRequests[key]) { pendingRequests[key] = jqXHR; }else{ //jqXHR.abort(); //放弃后触发的提交…
var requestSent = false; jQuery("#buttonID").click(function() { if(!requestSent) { requestSent = true; jQuery.ajax({ url: "http://example.com", ...., timeout: timeoutValue, complete: function() { ... requestSent = false; }, }); } });…
1.一次点击事件触发两次请求,找到的原因是重复引用了同一个.js文件,后台返回来的数据是个页面,在这个页面里面又引用了.js,所以导致一次点击多次请求…
1.使用Session,避免用户重复提交(F5刷新时) 0.起因         当用户上传文件后F5刷新浏览器会导致文件的重复提交和相关程序的重复执行.   1.实现原理         由于刷新提交表单,实际上提交的就是上一次正常提交的表单,所以我们只要做一个标志,判断出是新表单还是上一次的旧表单就可以分辨出是否进行了重复提交操作.   2.实现方法         在页面上放置一个Hidden域,当页面第一次载入的时候,在Session里面保存一个标志,同时,把这个标志保存到页面上的Hid…
ajax防止重复提交请求 A. 独占型提交 只允许同时存在一次提交操作,并且直到本次提交完成才能进行下一次提交. module.submit = function() {   if (this.promise_.state() === 'pending') {     return   }   return this.promise_ = $.post('/api/save') }B. 贪婪型提交 无限制的提交,但是以最后一次操作为准:亦即需要尽快给出最后一次操作的反馈,而前面的操作结果并不重要…