Обновления JavaScript HTML / DOM застряли, пока все вызовы Ajax не будут завершены. (в Chrome / Safari) - PullRequest
0 голосов
/ 25 марта 2019

Использование JavaScript. Я пытаюсь вызвать около 50-100 запросов HTTP / Ajax (в цикле) при обновлении HTML-DOM-элементов, основанных на ответах AJAX / HTTP, в режиме реального времени, в Firefox это прекрасно работает!

Проблема, с которой я сталкиваюсь, заключается в том, что Chrome / Safari (и Opera) не обновляют HTML-страницу до тех пор, пока не закончится цикл из всех 100 запросов. Даже анимации GIF, такие как «prealoaders», застряли.

Есть подсказка? или чаевые?

Я уже пробовал:

ЗАПРОСЫ HTTP ЗАПИСИ / функции:

  • Простой JavaScript XMLHttpRequest ()
  • JQuery $ .ajax ()

Запуск цикла HTML / DOM при загрузке документа:

  • $ (окно) .bind («загрузка», функция ()
  • document.addEventListener ("DOMContentLoaded", функция ()

РАБОЧИЙ ПРОГРАММИРОВАНИЕ:

  • Запуск LOOP с 100 итерациями
  • Запуск функции обновления N раз отдельно. (без петли)
  • Я также пытался ждать N миллисекунд в цикле и во время вызова функций.


function update_100_items_in_html_by_ajax(){

    var item_list='1,2,3,4,5,6,7,8,9,10,11,XX,YY,Z'.split(',');

    for (item_id in item_list) {
        xmlhttp=new XMLHttpRequest();
        xmlhttp.open("GET", "/item_id.php?id="+item_id, false);
        xmlhttp.send();
        if (xmlhttp.status==200) {
            document.getElementById('item_id_'+item_id).innerHTMLxmlhttp.responseText;
        };

    };

};


... и я называю JavaScript из HTML следующим образом ...


    document.addEventListener("DOMContentLoaded", function(){
        update_100_items_in_html_by_ajax();
    });

Вопрос, который я ищу ...

Как разблокировать браузер и обновить DOM в реальном времени? во время выполнения вызовов Javascript / Ajax?

THX. Много.

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