Как избежать утечек памяти, вызванных dijits? - PullRequest
0 голосов
/ 13 января 2011

Я новичок в додзе, и в настоящее время у меня возникли проблемы со значительными утечками памяти. Поскольку я читал, что сборщик мусора в JavaScript может иметь проблемы с диджитами, которые не были уничтожены, я пытаюсь позаботиться об этом, но не слишком успешно.

Итак, сначала я пытаюсь избавиться от всех виджетов, когда страница остается:

dojo.addOnWindowUnload(function(){
    dijit.registry.forEach(function(widget){
        widget.destroy();
    });
});

Кажется, это немного помогает, но не так сильно, как я ожидал. Поэтому на определенных этапах я звоню:

dojo.forEach(dijit.findWidgets(node), function(widget){
    widget.destroyRecursive();
});

Но у меня все еще есть утечки памяти, так или иначе вызываемые джиитами. Существуют ли общие советы и рекомендации, как от них избавиться? Или звонки должны быть в состоянии позаботиться обо всем, и я должен искать утечки в другом месте? Ну, я знаю, что это довольно общий вопрос, но я надеюсь, что вы все равно дадите мне несколько советов.

Спасибо!

1 Ответ

0 голосов
/ 19 февраля 2011

Вам не нужно делать это самостоятельно - см. http://trac.dojotoolkit.org/browser/tags/release-1.5.0/dijit/_base/manager.js#L293.

Если у вас возникают утечки памяти после разрушения страницы или вкладки, то, скорее всего, это ошибка в Dijit.Пожалуйста, сделайте минимальный тестовый пример и отправьте билет в trac, или вставьте его здесь, и я посмотрю и / или передам его кому-то, кто мог бы помочь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...