Как заставить браузер без задержки отображать элементы добавленные в цикле javascript

100
13 октября 2021, 12:00

Есть задача, по клику на кнопке начать в цикле выполнение тяжелых вычислений (скажем поиск простых чисел) с постепенным выводом результата в блок div. Попытался сделать это в лоб в цикле:

function onClick() {  
  var div = document.getElementById("container");
  for (let i = 0; i <= 1000; i++) {
       /*
       тут какие нибудь тяжелые вычисления
       */
       var new_element = document.createElement("div");
       new_element.className = "element";
       new_element.innerHTML = `${i}`;
       div.appendChild(new_element);
  } 
}

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

Подскажите, как правильно организовать подобную задачу силами js?

READ ALSO
JavaScript TextArea

JavaScript TextArea

Пытаюсь написать скрипт который будет заполнять формуВот страница с формой https://www

215
Как для datepicker установить + или - дату от выбранной на календаре, а не от сегодняшней?

Как для datepicker установить + или - дату от выбранной на календаре, а не от сегодняшней?

Есть календарик datepickerНужно сохранить выбранную дату и другую (например -50d от ВЫБРАННОЙ)

110
Странное изменение массива JavaScript

Странное изменение массива JavaScript

При запуске этого кода, в консоль выводится: Объясните, пожалуйста, почему массив изменяется до запуска forEach и почему в консоли он выглядит...

75
С# Parallel. Foreach - как красиво остановить?

С# Parallel. Foreach - как красиво остановить?

В общем есть цикл, в нём что-то параллельно делается, и при определённых условиях нужно его остановить, и что-то на форме занести в текстбоксы,...

110