Предотвращение Ajax сохранения данных в два раза - PullRequest
0 голосов
/ 19 февраля 2019

Всякий раз, когда я запускаю Ajax в jquery, он запускается два раза.Это вызовет проблемы при сохранении данных.Я гуглил и использовал их методы, но ни один из них не работал.Ниже приведены способы, которые я попробовал:

  1. Установить глобальный флаг.Включите его, когда Ajax работает, выключите его после завершения.Кажется, что дублированные вызовы управляют флагом одновременно.До того, как вызов 1 закрыл дверь, вызов 2 уже в кратчайшие сроки.Или проверьте время, если меньше 4000, не запускайте Ajax.

  2. Генерация случайного числа и присоединение к URL, они всегда одинаковы.

  3. event.preventPropgador (); e.preventDefault ();не работает в любом порядке

  4. async: true или false не работает

  5. Я не могу использовать «один раз», так как я использую jQuery Mobile

    $ ("# submitButton"). Once ("tap", function () {// <- error save ();}); </p>

  6. используется"один", но не работает

    $ ("# submitButton"). one ("tap", function () {save ();});

  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) {

           }
         });
}
...