tjdy7707的专栏

Java web开发技术

防止页面刷新后插入重复数据

        在web项目中防止用户刷新页面插入重复数据是开发人员必须考虑的异常情况之一。我的解决方法是当用户完成添加操作之后,将url指向查询action。例如:用户执行完添加操作时地址栏中的url如下:http://127.0.0.1:8080/MijItem/admin/logisticsAction!addLogisticsSendInfo.action
此时,要让它转到从一览画面点击修改后执行的那个方法:http://127.0.0.1:8080/MijItem/admin/logisticsAction!toEditLogistics.action。采用的方法是ajax提交后指向查看action。具体代码如下:

function addSendInfo(){
	var delegate_id = $.trim($('#delegate_id').val());
	var logisticNO = $.trim($('#logisticNO').val());
	var carryNo = $.trim($('#carryNoForest').val());
	if($("#sForm").valid()){
		$.ajax({
		  type:"POST",
		  url:"admin/logisticsAction!checkCarryNo.action",
		 data: {carryNoForest:carryNo,delegate_id:delegate_id,logisticNO:logisticNO,pageCurr:pageCurr},
		 dataType: "text",
		 success:function(html){
			if(html=="success"){
				$.ajax({
				type:"POST",
				url:"admin/logisticsAction!addLogisticsSendInfo.action",
				data: {delegate_id:delegate_id,logisticNO:logisticNO,},
				dataType: "text",
				success:function(html){
				if(html=="success"){
				    $("#sForm").attr("action","<%=contextPath%>/admin/logisticsAction!toEditLogistics.action");
				    $("#sForm").submit();
				  } else {
				      jqDialog.alert("<s:text name='struts.webui.logistics.label.OperationFailedPleaseTryLater'/>");
						}
					}
				});
			} else {
				jqDialog.alert("<s:text name='struts.webui.logistics.label.carryNoExists'/>");
					}
				}
			});
		}
	}

后台方法执行成功后返回success字符串,ajax判断成功后执行toEditLogistics.action并将表单提交。如果执行失败,弹出操作失败消息框。这样处理既可以防止页面刷新插入重复数据,也可以根据后台返回的字符串做排他判断。

阅读更多
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

不良信息举报

防止页面刷新后插入重复数据

最多只允许输入30个字

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭