2012-03-28 7 views
0

私たちのアプリケーションでは、グリッドとそれぞれの店舗を含むさまざまなウィンドウを持っています。我々が持っているウィンドウの一般的なコードの構造は、次のとおりです。ExtJs:それを使用しているグリッドが破壊されたら、ストアを強制的に削除する必要がありますか?

function showWin(){ 
    var storeVar = //code for store 
    var gridVar  = //code for grid with store as storeVar 
    var winVar  = //code for window having gridVar as item 
    winVar.show(); 
} 

このshowWin()関数が呼び出されているウィンドウを表示するボタンのクリックに言います。

このウィンドウが閉じられると、子アイテムグリッドとともに破棄されます。しかし、これはまた、グリッドに関連付けられているストアを破壊するのだろうか?私はそうは思わない。 storeVarは(より正確には、グリッドの破壊の)窓の開閉に破壊されていない場合

したがって、これは強制的に新しいコピーが作成されると毎回関数が呼び出されます(余分な荷物を減らすために削除する必要があります)メモリから?はいの場合、どうですか?

ありがとうございました。

PS:私たちは通常、あなたが店を自分でオブジェクトを作成していない4.0.7

答えて

1

senchaフォーラムとそこで受け取った答えと同じ質問をしましたが、ガベージコレクタ自体が処理するので、ストアを強制的に破棄する必要はないと思います。 More here.

ここにあるものを更新して、他の人が同じものを探していることを期待してください。

1

のverのExtJSを使用しています。このすべてをバックグラウンドで処理するExtJsにはStoreManagerクラスがあります。 Ext.getStore( 'MyStore1')を呼び出してストアオブジェクトにアクセスするだけです。

このアプローチでは、通常、各ストアはメモリ内に1つのインスタンスしか持ちません。だから、あなたはそれを破壊することについても心配する必要はありません。

+0

「通常は自分でストアオブジェクトを作成しないでください」ということを教えてください。グリッドを作成するときにも、その店舗を作成しないでください。 – netemp

+0

手動ではありません。 store: 'mystore'を指定すると、StoreManagerがオブジェクトインスタンスを作成します。 – sha

+0

ありがとうございます。しかしここにExtJSウェブサイトの例のURLがあります - http://docs.sencha.com/ext-js/4-0/#!/example/grid/array-grid.html - この例では、正確に言えば、他のすべての例では、ストアが手動で作成されていることがわかります(これは例のjsファイルで確認できます)。したがって、これは正しい方法ではありませんか? – netemp

関連する問題