Я использую Backbonejs
и Requirejs
для создания одностраничного веб-приложения. Похоже, мое приложение имеет memory leaks
.проблема с утечкой памяти в приложении Backbonejs
Для тестирования я создал образец кода. Он создает объект вида, вызывает его функцию render
и прикрепляет возвращенный html
к DOM
.
html
имеет button
. После нажатия кнопки его callback
вызывает функцию destroy
, где вид разрушен.
Однако, когда я запускаю chrome heap profilier
, я вижу detached DOM tree
, все еще висящий вокруг. Глубоко вглядываясь в него, можно увидеть references
, хранящийся jQuery
.
У меня есть сомнения, является ли это утечкой памяти или нет. Если да, то mycode не содержит ссылок. Проблема с этим: jQuery
?
Это код link.
Я также добавил скриншоты снимков кучи.
В качестве общего совета: при решении таких проблем попытайтесь изолировать каждый элемент: избавиться от requirejs, чтобы у вас было меньше, чем обрабатывать при отладке. Другим советом является обновление до Backbone 1.0.0 и использование новых функций 'listenTo' и' stopListening', которые были введены для решения этих проблем. Имейте в виду, что вызов 'remove' в представлении также вызывает' stopListening'. – namero999
@gustavohenke backbone не имеет проблем с утечками памяти. они создаются разработчиками :) –
Если у вас возникли проблемы с памятью, начните просматривать местоположение всех ваших обработчиков ... возможно, некоторые обработчики могут быть неявно заданы вашим представлением, что удаление не обрабатывается. – adrian