迷彩风情的gravatar头像
迷彩风情 2014-07-21 10:44:29

如何防止ajax被重复调用?

如何防止ajax被重复调用,包括前台的和后台的,大家有意见的都来说一下,感谢各位!

所有回答列表(3)
最代码官方的gravatar头像
最代码官方  LV168 2014年7月21日

前端的话可以参考下最代码的评论的实现,当用户点击评论的时候把按钮disabled,如下代码:

if (post_mood.hasClass('disabled')){
	return;
}
post_mood.text("提交中...").addClass('disabled');
$.ajax({
	url : "/mood/create.htm",
	type : 'POST',
	dataType : 'json',
	data : {
		content : $("#mood_input").val()
	},
	success : function(json) {
		if (json.error == "") {
			alert("心情发表成功")
			$("#mood_input").val("下次+1牛币还剩4小时");
			post_mood.text("发表").removeClass('disabled');
		} else {
			alert(json.error);
		}
	}
});

后端的话可以通过对当前用户对象做synchronized来实现,如下代码:

synchronized (sessionUser) {
    //do something
}

最代码的发表心情就是这么做的。当然同步发表心情的方法也可以。

评论(0) 最佳答案
已注销用户的gravatar头像
已注销用户  LV34 2014年7月21日
function disabledButton(targetId){
	
	if($("#" + targetId).get(0).tagName == "BUTTON"){
		var buttonVal = $("#" + targetId).html();
		$("#" + targetId).html(buttonVal +"...");
	}
	
	if($("#" + targetId).get(0).tagName == "INPUT"){
		var buttonVal = $("#" + targetId).val();
		$("#" + targetId).val(buttonVal +"...");
	}
	
	$("#" + targetId).attr("disabled","disabled");
}

我们基本都是用 js 控制 和 @最代码官方 类似的思路 把按钮disabled 掉。

lihuiyong的gravatar头像
lihuiyong  LV2 2015年9月6日

一个页面有多个表单ajax提交的话,应该就不行了吧!或者一个提交失败,其他都不能提交了!

顶部 客服 微信二维码 底部
>扫描二维码关注最代码为好友扫描二维码关注最代码为好友