Sencha Touch的性能優(yōu)化
Sencha Touch 跟Ext js一個(gè)提供了豐富且高級(jí)的組件讓我們能快速的開(kāi)發(fā)出一個(gè)跨手機(jī)平臺(tái)而且很絢麗的產(chǎn)品,這聽(tīng)起來(lái)不錯(cuò),但很快我們發(fā)現(xiàn)了一個(gè)嚴(yán)重的問(wèn)題,手機(jī)上的效果根本沒(méi)有在PC上用chrome打開(kāi)的效果一樣讓人有刷刷的快感,甚至讓人痛苦. Sencha Touch和ext一樣,組件是類(lèi)式繼承的,大大降低了使用和學(xué)習(xí)的周期.但缺點(diǎn)也是很明顯的,你每增加一個(gè)組件,內(nèi)存消耗就增加很多,可能你已經(jīng)使用minify/JSBuilder/YUI compressor等工具壓縮過(guò)你的代碼了,如果性能還不佳,那么可以看看以下是個(gè)人的一點(diǎn)建議
1.每個(gè)組件都應(yīng)該考慮它的xtype,如果可以使用container就不要使用一個(gè)panel了
2.list一列的個(gè)數(shù)顯示一屏就可以了,list有很多高級(jí)的功能,但性能非常的差,只能通過(guò)減少加載項(xiàng)來(lái)解決
3.盡量不要使用tbar/bbar,Sencha Touch的提供的toolbar功能強(qiáng)大,按鈕也很易用,但使用的DOM元素也非常的多,自己寫(xiě)一個(gè)bar是非常必要的
4.把不在置頂?shù)膙iew中的DOM給刪除,有時(shí)候,我們的項(xiàng)目中有好幾個(gè)view,但我們一時(shí)間內(nèi)是不可能同時(shí)查看兩個(gè)view的,應(yīng)該把其他view的DOM元素給釋放了
從上面看來(lái),性能優(yōu)化的關(guān)鍵是控制DOM元素的數(shù)量,但Sencha Touch還會(huì)對(duì)一些元素綁定事件,如何開(kāi)始就不顯示這些元素,那么內(nèi)存開(kāi)銷(xiāo)會(huì)更低