7

私はSenchaTouch2を使い始めましたが、リソースのクリーンアップをどのように処理するのか(たとえあったとしても)疑問に思いました。

特に:

  • URLリダイレクトによってトリガーされるコントローラーがたくさんあると想像してください。それらのControllerインスタンスはキャッシュされますか、それともSenchaは、コントローラーでメソッドを呼び出す必要があるたびに新しいインスタンスを作成しますか?

  • ビューについても同じです。senchaはビューをキャッシュしますか、それとも再レンダリングが必要になるたびにビューを再作成しますか。ビューが破壊されるのはいつですか(破壊されている場合)?

  • 煎茶がそれらをどのように扱うかを制御できますか?

4

1 に答える 1

11

あなたの質問に答えるために、

  1. 各コントローラーのインスタンスは、Senchaによって1つだけ作成されます。ですから、コントローラーインスタンスについて気にする必要はないと思います。煎茶にそれを処理させてください。

  2. ビューの数とビューの複雑さはパフォーマンスに密接に関連しているため、クリーンアップは実際にはビューを使用して実行する必要があります。

Senchaはリソースを具体的にクリーンアップしません。開発者はDOMのクリーンアップを明示的に処理する必要があります(Javascript独自のガベージコレクションメカニズムは別として)。したがって、開発者は、ビューをいつ作成するか、将来使用するためにDOMに保持するか、非表示になったらすぐに破棄するかを決定する必要があります。いくつか例を挙げましょう。

A。

ボタンをクリックすると、ユーザーはページに関する情報を表示するINFOポップアップを開きます。ユーザーが情報を読むと、ポップアップを閉じます。現在、ユーザーの観点からは、ユーザーがポップアップを再度開く可能性はほとんどありません。したがって、ユーザーがポップアップを閉じるとすぐにポップアップがDOMから削除されるのが最善です。とにかく、ユーザーがそれを再び開きたい場合は、ポップアップを再作成して表示します。

B。

同様に、ユーザーがログインページにいて、アプリケーションにサインインしているとします。アプリ内でユーザーがログインページに戻ることはほとんどありません。したがって、ログインビューインスタンスが非表示になったら破棄します。

したがって、これらは、必要に応じてビューを明示的に削除できるいくつかのシナリオです。以下は、Senchaによるメモリ最適化についての良いアイデアを与えるいくつかの参考資料です。

a)Sencha Touch:メモリ使用量の最適化

b)http://www.slideshare.net/senchainc/optimizing-performance

于 2012-08-27T11:51:07.387 に答える