防止Ajax两次保存数据

时间:2019-02-19 19:30:03

标签: ajax mobile double call

每当我在jquery中运行Ajax时,它将运行两次。这将导致保存数据时出现问题。我用谷歌搜索并使用了他们的方法,但是没有一个起作用。以下是我尝试的方法:

  1. 设置全局标志。在Ajax运行时将其设置为打开,完成后将其关闭。似乎重复的调用会同时管理该标志。在呼叫1关上门之前,呼叫2已经不存在了。或检查时间是否少于4000,请不要运行Ajax。

  2. 生成随机数并附加到url,它们始终是相同的。

  3. event.preventPropgador(); e.preventDefault();不能按任何顺序工作

  4. 异步:true或false无效

  5. 因为我使用的是jQuery Mobile,所以我不能使用“一次”

    $(“#submitButton”)。once(“ tap”,function(){// <-错误             保存();  });

  6. 使用“一个”但不起作用

    $(“#submitButton”)。one(“ tap”,function(){             保存();  });

  7. 在运行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) {

           }
         });
}

0 个答案:

没有答案