Функция Javascript предотвращает выполнение, если уже выполняется - PullRequest
0 голосов
/ 30 мая 2019

У меня есть функция, задачей которой является получение записи от третьего лица, и эта функция выполняется через каждые 10 секунд.

Проблема в том, что эта функция выполняется через очень короткое время, поэтому, когда я отлаживаю через firefox, она показывает длинную очередь ajax.Я думаю, почему бы не добавить оператор, который может дать сигнал следующему о выполнении AJAX.Поскольку я выполняю ту же функцию, и какая работа такая же, поэтому, если предыдущая все еще делает то же самое, нет смысла выполнять другую для той же работы.Я пытаюсь следовать

function someThingPrecessing(){
    if(sessionStorage.do == true){
        $.ajax(function(){
            continue...
        });
     }

    sessionStorage.do = true;
    sessionStorage.do = false;
}

setInterval(someThingPrecessing,10000);

Но выше один не работает, может кто-нибудь подсказать мне, как я могу это сделать.Я хотел бы оценить.

1 Ответ

0 голосов
/ 30 мая 2019

Вы должны проверить, выполнен ли запрос ajax, прежде чем вызывать следующий.Ниже приведен пример:

var ajax_ongoing=false;
function someThingPrecessing(){
    if(!ajax_ongoing){
    ajax_ongoing=true;
        $.ajax(function(){
            success : function(data) {
                    ajax_ongoing=false;
                },
                error : function(data, textStatus, errorThrown) {
                    ajax_ongoing=false;
                }
        });
     }
  }

setInterval(someThingPrecessing,10000);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...