AJAX, Счетчик итераций Javascript - PullRequest
0 голосов
/ 09 ноября 2019

Проблемы с обновлением текста на моей странице после каждого вызова Ajax.

Зацикливание хотя бы объекта для загрузки в БД, объект может содержать более 100 элементов, и во время каждого вызова Ajax я хотел бы обновить текст о том, сколько было успешно.

Однако это не работает. Он не будет обновлять текст, пока цикл не завершится. Я пытаюсь обновить "document.getElementById (" counter "). InnerText =" Загрузка "+ successCount;"после каждого цикла.

Пример цикла:

for (var i=0; i<dataObj.length; i++) {

$.ajax({
                url : 'URL',
                type : 'POST',
                async: false,
                    data: 'data=' + encodeURIComponent(tempObj),
                    dataType:"json",
                    success : function(data) {
                      if(status == '"SUCCESS"'){
                      successCount++;
                      document.getElementById("count").innerText = successCount;
                      }else{
                        alert("error");
                      }
                    },
                    error : function(request,error)
                    {
                      alert("error");
                    }
                  });
}

Есть идеи, почему обновление элемента не будет работать во время цикла при выполнении вызовов Ajax?

1 Ответ

0 голосов
/ 09 ноября 2019

Я думаю, что если ваш ajax-вызов в порядке (я полагаю, что это так), он обновляется. То, что происходит здесь, происходит из-за петли. Вы не можете видеть изменения, только последнее изменение. Кстати, вы можете console.log() на метод успеха внутри status=='SUCCESS' и посмотреть, сколько раз он меняется.

Добавить. нехорошо иметь вызов ajax внутри цикла и позволять этому случаться n раз, как вы это делали здесь. Вам необходимо предоставить все данные полностью или переосмыслить альтернативу об этом решении.

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