嗨,我有一个项目作为申请人,用户通过更多选项卡提交他的数据,他将他的简历添加到数据旁边,但是当数据插入数据库时需要很长时间,用户可能会点击更多次,这导致插入重复数据。
我建议使用 Ajax 加载器作为弹出窗口,但我不知道解决这个问题的最佳解决方案,因为我需要这个加载器等到数据插入 DB。
嗨,我有一个项目作为申请人,用户通过更多选项卡提交他的数据,他将他的简历添加到数据旁边,但是当数据插入数据库时需要很长时间,用户可能会点击更多次,这导致插入重复数据。
我建议使用 Ajax 加载器作为弹出窗口,但我不知道解决这个问题的最佳解决方案,因为我需要这个加载器等到数据插入 DB。
查看此 SO 答案,该答案显示了如何设置变量以查看请求当前是否正在运行。这样,您可以在进程运行时暂时禁用单击功能,然后在一切完成后启用它。
编辑
我已经修改了上面链接中的 jQuery 代码,以展示你可以如何做你需要的事情。这些功能需要用您自己的实现来填写。我无法为您做到这一点-我不知道您当前代码的结构...
var requestRunning = false;
$('#save_link').live('click', function () {
if (requestRunning) { // don't do anything if an AJAX request is pending
return;
}
$(".save_link").text("Saving ...");
var ajaxOpts = {
type: "",
url: "",
dataType: "",
data: "",
success: function (data) {
// something to show the user a save is happening maybe?
},
complete: function() {
requestRunning = false;
}
};
requestRunning = true;
$.ajax(ajaxOpts);
return false;
});