2012-08-22 87 views
7

我開始與Sencha Touch 2合作,我只是想知道它是如何處理資源清理的。Sencha Touch 2如何清理資源

特別是:

  • 想象我們有一大堆的控制器,它們由網址重定向觸發。將這些控制器實例緩存或是Sencha每次創建新實例時需要調用控制器上的方法

  • 相同的視圖。 sencha緩存視圖,還是每次需要再次渲染時都會重新創建它們。視圖何時被摧毀(如果是)?

  • 我可以控制sencha如何處理這些事情嗎?

回答

11

回答您的問題,

  1. 只有每個控制器的一個實例被創建煎茶。所以,我真的認爲你不需要打擾控制器實例。讓Sencha處理。

  2. 實際上應該對視圖進行清理,因爲視圖的數量和複雜程度與性能密切相關。

煎茶沒有清理它的資源,特別是 - 開發商必須(從Javascript自己的垃圾回收機制分開)照顧DOM清理明確。因此,開發人員需要決定何時創建視圖,是否將其保留在DOM中供將來使用,或者在其隱藏後立即銷燬它。讓我舉一些例子:

A.

假設上點擊一個按鈕,用戶打開一個彈出信息,顯示 一些關於網頁的信息。一旦用戶閱讀信息,他將關閉彈出窗口。現在,從用戶的角度來看,用戶重新打開彈出窗口的可能性很小。所以,最好是 ,如果彈出窗口在用戶關閉它時立即從DOM中刪除。 無論如何,如果用戶想重新打開它,重新創建彈出窗口並顯示 它。

B.

同樣假設用戶在登錄頁面,到 應用程序登錄。在 應用程序中,用戶幾乎不會回到登錄頁面。所以,一旦隱藏它就破壞登錄的View實例。

因此,這些是一些場景,其中視圖可以在需要時顯式刪除。下面是一些參考其給出有關使用煎茶內存優化好主意:

一)Sencha Touch: Optimizing Memory Usage

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

+0

偉大的答案。仍然無法相信我首先必須開始一個獎金擊敗soneone到一個答案:-)我注意到有一個擴展稱爲http://deftjs.org處理這些事情有點不同,因爲它似乎 – Christoph

+0

:)很高興知道它有幫助。如果我看到它,我會早些時候回答它! – Swar