jQuery: .text и .html не срабатывают вовремя

218
03 мая 2022, 05:30

Запускаю код:

function bubbleSort(array) {
  let len = array.length;
  let swapped;
  do {
    swapped = false;
    for (let i = 0; i < len; i++) {
      if (array[i] > array[i + 1]) {
        let tmp = array[i];
        array[i] = array[i + 1];
        array[i + 1] = tmp;
        swapped = true;
      }
    }
  } while (swapped);
};
let array=[];
for (let index = 0; index < 11000; index++) {
   array[index] = Math.floor(Math.random() * (100000));
   let sign = Math.floor(Math.random() * 2);
   if (sign === 1) array[index] *= -1;
}
let arrayToSort = array.slice();
ell = document.getElementById('p');
ell.innerHTML = "Started";
setTimeout(bubbleSort(array), 3000);
ell = document.getElementById('p');
ell.innerHTML = "Finished";
  
<p id="p"></p>

Но текст изменяется только после выполнения функции bubblesort (сначала started, потом моментально на finished)

Почему текст не меняется до функции? Там проходит примерно несколько секунд. Пробовал пихать в setTimeout, но без результата. Понимаю что особенности языка, но не знаю как исправить.

Answer 1

function bubbleSort(array) {
  let len = array.length;
  let swapped;
  do {
    swapped = false;
    for (let i = 0; i < len; i++) {
      if (array[i] > array[i + 1]) {
        let tmp = array[i];
        array[i] = array[i + 1];
        array[i + 1] = tmp;
        swapped = true;
      }
    }
  } while (swapped);
};
let array=[];
for (let index = 0; index < 33000; index++) {
  array[index] = Math.floor(Math.random() * (100000));
  let sign = Math.floor(Math.random() * 2);
  if (sign === 1) array[index] *= -1;
}
let arrayToSort = array.slice();
let ell = document.getElementById('p');
ell.innerHTML = "Started";
setTimeout(function(arr) {
  bubbleSort(arr);
  ell.innerHTML = "Finished";
}, 0, arrayToSort);
<p id="p"></p>

READ ALSO
Работа с Webpack на готовом лендинге

Работа с Webpack на готовом лендинге

Есть свёрстанный адаптивный лендинг со стилями, скриптами, шрифтами и тд

220
React проблемы с отображением подписчиков + Pagination

React проблемы с отображением подписчиков + Pagination

Я использую api и получаю пользователей, затем отображаю пользователей на странице (GitHub), все работает нормально, я хочу на странице профиля...

134
связь процесса node js и electron js

связь процесса node js и electron js

У меня есть дискорд-бот на discordjs, и приложение на electron

316
Отфильтровать без изменения создания нового массива

Отфильтровать без изменения создания нового массива

Подскажите пожалуйста каким образом можно отфильтровать массив без возвращения нового массиваПри использования filter или new Set возращается...

123