1

ウィンドウで開くextjsに大きなフォームがあり、速度上の理由から、非表示のパネルにキャッシュします。一度に 1 つのウィンドウしか存在できないため、キャッシュされたフォームも 1 つです。ショーイベントで、レンダリングなしで、フォームのsuspendLayoutオプションを使用して、フォームをウィンドウに追加します。閉じるイベントで、フォームを非表示のパネルに移動し、パネルの追加メソッドを使用します。ウィンドウではなく、パネルではなく remove メソッドを使用しません。したがって、数回はすべて完璧ですが、3〜5回ウィンドウを開くと、すべてのイベントが失われます。ボタン、コンボボックス、トリガー、およびその他のコントロールが応答しません。問題はどこだ?ありがとうございました。

4

1 に答える 1

0

確実に知ることは困難ですが、私の理論では、リスナーが設定されている監視可能なオブジェクトは、非アクティブな不確定な期間にガベージコレクションされます。

親ウィンドウから監視されている iframe の本体を表すオブジェクトでこれが発生するのを見てきました。本文からのクリック イベントはしばらくの間機能し、その後すべてのイベントが停止します。

理論をテストする 1 つの方法は、オブジェクト参照をグローバル変数に格納することです。これは、どのアプリでもやりたいことではありませんが、テストするだけの価値はあります。グローバル変数はガベージ コレクションされません。

于 2012-12-20T18:28:03.410 に答える