У меня есть некоторые проблемы при использовании большого количества скрытых элементов в Google Chrome.
Недавно я опубликовал вопрос , который многие считали неясным, и вскоре он был закрыт.Я нашел причину этой проблемы, но пока не знаю, как ее решить.
Иногда при разработке страниц используется метод, заключающийся в том, что некоторые элементы создаются заранее и скрыты,и затем отображается при необходимости.
Таким образом, количество таких элементов сильно влияет на скорость отклика браузера.Предположим, у нас есть следующий код:
var elem = document.getElementsByClassName ('Founder') [0];
var parent = document.getElementsByClassName ('Cloud') [0];
var empty = document.getElementsByClassName ('empty') [0];
for (var i = 0; i <50000; i ++) {
var clone = elem.cloneNode (true);
// var clone = empty.cloneNode (true);
clone.style.display = 'none';
parent.appendChild (clone);
}
<div class = 'Cloud'>
<input class = 'Founder' type = 'text'>
<div class = 'empty'> </div>
</div>
Поэтому, когда я запускаю его в Firefox (67.0 (64-разрядная версия)), специальных тормозов нет.Но когда я запускаю его в Chrome версии 74.0.3729.169 (Официальная сборка), (64 бита), я получаю сильные тормоза.
В профиле это можно рассматривать как пустое задание (система).Посмотрите на скриншот.(Это из старой темы, и в общей сложности 640 000 узлов, но это не меняет сути).
https://i.imgur.com/yL8I5Hj.jpg
Есть ли способ ускорить работуи можно ли заморозить элементы, которые не отображаются?Насколько я понимаю, эти пустые задачи, это время, за которое браузер индексирует элемент или что-то в этом роде.
Возможно, есть какие-то настройки, которые можно изменить программно, что ускорит работу (можеттребуется больше оперативной памяти).