我開始與Sencha Touch 2合作,我只是想知道它是如何處理資源清理的。Sencha Touch 2如何清理資源
特別是:
想象我們有一大堆的控制器,它們由網址重定向觸發。將這些控制器實例緩存或是Sencha每次創建新實例時需要調用控制器上的方法
相同的視圖。 sencha緩存視圖,還是每次需要再次渲染時都會重新創建它們。視圖何時被摧毀(如果是)?
我可以控制sencha如何處理這些事情嗎?
我開始與Sencha Touch 2合作,我只是想知道它是如何處理資源清理的。Sencha Touch 2如何清理資源
特別是:
想象我們有一大堆的控制器,它們由網址重定向觸發。將這些控制器實例緩存或是Sencha每次創建新實例時需要調用控制器上的方法
相同的視圖。 sencha緩存視圖,還是每次需要再次渲染時都會重新創建它們。視圖何時被摧毀(如果是)?
我可以控制sencha如何處理這些事情嗎?
回答您的問題,
只有每個控制器的一個實例被創建煎茶。所以,我真的認爲你不需要打擾控制器實例。讓Sencha處理。
實際上應該對視圖進行清理,因爲視圖的數量和複雜程度與性能密切相關。
煎茶沒有清理它的資源,特別是 - 開發商必須(從Javascript自己的垃圾回收機制分開)照顧DOM清理明確。因此,開發人員需要決定何時創建視圖,是否將其保留在DOM中供將來使用,或者在其隱藏後立即銷燬它。讓我舉一些例子:
A.
假設上點擊一個按鈕,用戶打開一個彈出信息,顯示 一些關於網頁的信息。一旦用戶閱讀信息,他將關閉彈出窗口。現在,從用戶的角度來看,用戶重新打開彈出窗口的可能性很小。所以,最好是 ,如果彈出窗口在用戶關閉它時立即從DOM中刪除。 無論如何,如果用戶想重新打開它,重新創建彈出窗口並顯示 它。
B.
同樣假設用戶在登錄頁面,到 應用程序登錄。在 應用程序中,用戶幾乎不會回到登錄頁面。所以,一旦隱藏它就破壞登錄的View實例。
因此,這些是一些場景,其中視圖可以在需要時顯式刪除。下面是一些參考其給出有關使用煎茶內存優化好主意:
一)Sencha Touch: Optimizing Memory Usage
B)http://www.slideshare.net/senchainc/optimizing-performance
偉大的答案。仍然無法相信我首先必須開始一個獎金擊敗soneone到一個答案:-)我注意到有一個擴展稱爲http://deftjs.org處理這些事情有點不同,因爲它似乎 – Christoph
:)很高興知道它有幫助。如果我看到它,我會早些時候回答它! – Swar