ajaxStop()正在触发,但ajaxStart()没有

时间:2017-08-23 18:19:41

标签: jquery ajax

每次通过单击按钮调用我的servlet时,都会收到ajaxStop()消息,但它不适用于ajaxStart(),我不知道为什么。这是我的代码。

 $(document).ready(function () {
        $("#continue").click(function () {
            var period = $("#period").val();
            var year = $("#year").val();
            var dataString = {"period": period, "year": year};
             $.ajax({
                url: 'GenerateButtons',
                data: dataString,
                type: 'post',
                cache: false,
                success: function (data) {
                    $('#uploadFileButtons').html(data);
                },
                error: function () {
                    alert('error');
                }
            });
        });
        $(document).ajaxStart(function(){
            console.log("ajaxStart");
        }).ajaxStop(function(){
           console.log("ajaxStop");
        });
 });

我顺便使用Firefox和NetBeans作为我的Web应用程序。

[更新编辑] 我在一个单独的项目中测试它,它工作正常。在这之后,我意识到其中一个ajax代码被这样奇怪的东西所调用。它触发ajaxStop()但不触发ajaxStart()。因此,我必须告诉那个做这件事的家伙,他必须解决这个问题。在任何情况下,似乎必须通过jQuery事件调用ajaxStop / ajaxStart才能正确触发。

    $(document).ready(function () {
    var p = document.getElementById("menssage").innerHTML;

    if (p === "This period is already processed") {
        $.ajax({
            url: 'ShowDiffServlet',
            data: dataString,
            type: 'get',
            cache: false,
            success: function (data) {
                $('#tabla').html(data);
            },
            error: function () {
                alert('error');
            }
        });
        $("#continue").prop('disabled', false);
        $("#warningReprocess").show(1000);
    }
    if (p === "File was successfully uploaded!") {
        var dataString;
        $.ajax({
            url: 'ShowDiffServlet',
            data: dataString,
            type: 'post',
            cache: false,
            success: function () {
            },
            error: function () {
                alert('error');
            }
        });
        $("#continue").prop('disabled', false);
        $("#tableTitle").html("<hr><h1>Diff table</h1>");
    }

    $(document).ajaxStart(function(){
        console.log("Starting loader");
        $loader.addClass("loading");
    }).ajaxStop(function(){
       console.log("Stopping loader");
       $loader.removeClass("loading");
    });
});

0 个答案:

没有答案