0

嗨,我有一个项目作为申请人,用户通过更多选项卡提交他的数据,他将他的简历添加到数据旁边,但是当数据插入数据库时​​需要很长时间,用户可能会点击更多次,这导致插入重复数据。

我建议使用 Ajax 加载器作为弹出窗口,但我不知道解决这个问题的最佳解决方案,因为我需要这个加载器等到数据插入 DB。

4

1 回答 1

0

查看此 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;
});
于 2013-01-06T11:58:57.657 回答