Я тестировал то, что читал ранее о том, насколько случайным является Math.random()
, и хотел отобразить 10000 чисел, которые должны были быть случайными числами между 0 и 10000000.
Чтобы увидеть тест, я решил просто объединить массив случайных чисел в строку с <br>
между каждым целым числом. А потом я просто сделал $("#"+elm).html(randomNumberString);
, что было очень медленно. Я просто подумал, что это генерация и сортировка случайных чисел в массиве. Но когда я начал размещать таймеры в своем коде, стало очевидно, что именно вывод замедляет все.
Так же, как тест я сделал document.getElementById(elm).innerHTML = randomNumberString;
jQuery.html (): 2500 мс
getElementById.innerHTML: 170ms
Я пробовал это во всех 5 браузерах, и цифры были очень близки во всех браузерах ... Я неправильно использую jQuery в этом случае? Я также попытался добавить и извлечь элемент до запуска таймера, поэтому я мог просто сделать $(elm).html()
, но это не помогло. Кажется, это реальная функция html()
, которая все замедляет ..?
РЕДАКТИРОВАТЬ Я закончил делать это:
randomStringNumber = "<div>" + randomStringNumber + "</div>";
и теперь все работает намного быстрее:
jQuery.html (): 120 мс
getElementById.innerHTML: 80 мс
Тем не менее, быстрее использовать oldschool html. И если у кого-то есть ответ на вопрос, почему обернуть его в один элемент быстрее, я был бы признателен за это ...