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