2011-01-13 10 views
0

私はdojoには新しく、現在、重大なメモリーリークにいくつかの問題があります。 JavaScriptのガベージコレクタが破壊されていないディジットに問題があるかもしれないことを読んだので、私はそれを世話しようとしていますが、それほど成功していません。ページが残されているときdijitsによって引き起こされるメモリリークを回避する方法はありますか?

だから、最初、私は、すべてのウィジェットを取り除くためにしようとしている:

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

をこれは、ビットを支援するようだが、いない限り、私が期待した通り。

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

しかし、私はまだ何とかdijitsによって引き起こされるかなり確信してメモリリークを抱えている。だから、ある段階で、私は呼んでいます。そのようなものを取り除く方法は、一般的なヒントとベストプラクティスですか?また、上記の呼び出しがすべてを処理することができ、漏れのために別の場所を探す必要がありますか?まあ、それはかなり一般的な質問だが、私はあなたに私にいくつかのヒントを与えることができればと思う。

ありがとうございます!

+0

どのブラウザを使用しますか? IEのみ? –

+0

Firefox/OSx atmのみ、Safari/OSxの方がはるかに優れているようです。まだ他の人をテストしていない。 – Tina

答えて

0

自分で行う必要はありません。http://trac.dojotoolkit.org/browser/tags/release-1.5.0/dijit/_base/manager.js#L293を参照してください。

ページやタブを破壊した後にメモリリークが発生した場合は、Dijitのバグである可能性が最も高いです。最小限のテストケースを作ってtracにチケットを提出するか、ここに貼り付けてください。私は見て行き、助けてくれる人に渡します。

関連する問題