Я разрабатываю одностраничное приложение, которое использует множество виджетов (главным образом сеток и вкладки) из библиотеки jqWidgets, которые загружаются при загрузке страницы. Он становится довольно большим, и я начал замечать его после , используя (я подчеркиваю, что он не начинает отставать, просто открываясь на какое-то время, но, в частности, после открытия и закрытия кучи вкладок на моем страницы, каждая вкладка содержит несколько сеток, загруженных через Ajax, которые связаны с каждым из нескольких слушателей событий) на пару минут пользовательский интерфейс становится довольно медленным, а иногда и невосприимчив, когда страница обновляется, все работает снова гладко в течение нескольких минут, затем Вернемся к лагги. Я все еще тестирую локальный хост. Моя первоначальная реакция заключалась в том, что в DOM слишком много элементов (каждая сетка создает сотни div! И у меня их много), поэтому слушатели событий, привязанные к идентификаторам, должны искать слишком много элементов и замедляться. Если это так, то это будет не так уж сложно исправить, может быть, мое предположение может быть виновником или у меня что-то страшнее?Single Page Application - Large DOM - SLOW
ОБНОВЛЕНИЕ: Здесь приведены снимки временной шкалы памяти и моментального снимка кучи. На временной шкале памяти не было никакого взаимодействия с сайтом, два больших увеличения - обновление страницы, срединная секция средней пилы просто позволяет моему сайту бездействовать.
Какова временная шкала памяти в Chrome? Если он постоянно растет, у вас есть утечка памяти, и это потенциально означает много обработчиков мертвых событий и таких, которые все еще висят в памяти. –
@MattGreer благодарит за то, что указала мне на временную шкалу памяти, у меня всегда есть инструменты для Chrome, но я не знал об этой функции, я довольно новый. Таким образом, график показывает, что память растет, а затем отбрасывается снова и снова, причем график почти соответствует форме, подобной лезвию пилы. Я знаю, что количество DOM довольно высокое (40 000), которое я ожидал из-за всех виджетов, но оно не выходит из-под контроля. То, что выходит из-под контроля, - это счетчик прослушивания событий, при открытии/закрытии вкладок счет начинает быстро расти! (начинается с 7000, быстро переходит в 11000+ –