每当我在jquery中运行Ajax时,它将运行两次。这将导致保存数据时出现问题。我用谷歌搜索并使用了他们的方法,但是没有一个起作用。以下是我尝试的方法:
设置全局标志。在Ajax运行时将其设置为打开,完成后将其关闭。似乎重复的调用会同时管理该标志。在呼叫1关上门之前,呼叫2已经不存在了。或检查时间是否少于4000,请不要运行Ajax。
生成随机数并附加到url,它们始终是相同的。
event.preventPropgador(); e.preventDefault();不能按任何顺序工作
异步:true或false无效
因为我使用的是jQuery Mobile,所以我不能使用“一次”
$(“#submitButton”)。once(“ tap”,function(){// <-错误 保存(); });
使用“一个”但不起作用
$(“#submitButton”)。one(“ tap”,function(){ 保存(); });
在运行ajax时禁用该按钮,然后在后言中启用它。
我在save()和Ajax调用上尝试了以上技术,但没有一个起作用。 这是我的代码,例如:
$(document).bind("pageinit", function () {
$("#submitButton").one("tap", function () {
save();
});
}
function save() {
$.ajax({method: "get",
url: baseUrl + "save?model=abcd&rand=" + randonNum(),
contentType: "application/json; charset=utf-8",
success: function (response) {
//do whatever
}
},
error: function (request, status, error, errorThrown) {
}
});
}