问题描述
在Java编程中,当后台未进行重复判断时,在用到ajax进行前后台的数据传递,
由于网络环境问题,在某些情况下,当用户多次点击确定或提交按钮就行数据保存时,
就会因为后台反馈不及时,导致了多个保存请求触发,而保存多条相同的数据。
解决方法
示例代码如下:
//确定提交
$(".confirm-btn").click(function () {
//在第一次点击进入事件时,解绑该按钮的点击事件,防止在数据反馈之前的误触
let _this = $(this);
_this.unbind("click");
$.post('/a/b/save',
{data: data}, function (data) {
if (data.success) {
layer.alert(data.msg, function () {
window.location.reload();;
});
} else {
//在反馈失败之后重新绑定点击事件
layer.alert(data.msg, function () {
_this.bind("click");
})
}
})
});
测试小技巧
Chrome浏览器拥有很强大的功能,有些很实用的工具,F12打开控制台,点击上方导航栏中的Network,如下所示的模拟网络环境,有4种选择:
online:正常网速
Fast 3G: 3G网速
Slow 3G:贼慢的3G,接近2G网速
Offine:断网
结语
萌新一枚,这是❤的处女作,以后在编程中的遇到了有趣的问题都会发出,与大家一起成长ヾ(o◕∀◕)ノヾ