Я создаю одностраничное приложение в Backbone.js, предназначенное для масштабирования до 10 000 фотографий. Я пытаюсь проверить ограничения Chrome и посмотреть, столкнусь ли я с этой ошибкой webkit:
Неограниченный рост памяти при добавлении и удалении изображений
Я загружаю JPG в дерево DOM, используя и instanceof Backbone.View в дерево DOM, и вызываю следующее для удаления:
// myThmbnailView instanceof Backbone.View
myThumbnailView.undelegateEvents();
myThumbnailView.remove();
ThumbnailView не имеет объявленных обработчиков событий, все делегируется родителю, GalleryView.
Согласно временной шкале в ChromeDevTools, у меня есть 1000 узлов DOM на моей странице (каждый элемент ThumbnailView содержит 20 элементов DOM), но они не освобождаются, когда я перебираю миниатюры и удаляю их. Вот снимок
Последний вызов $("body").children().remove()
для удаления всех элементов DOM со страницы по-прежнему оставляет мне 18 000 узлов DOM в соответствии с временной шкалой. Тем не менее, GC, похоже, освобождает значительную часть памяти.
У меня есть осиротевшие узлы или это ошибка временной шкалы? Я неправильно подхожу к этой проблеме?