Flex程序開(kāi)發(fā)心得小結(jié)
更新時(shí)間:2008年04月13日 18:29:37 作者:
和Flash的開(kāi)發(fā)環(huán)境相比,F(xiàn)lex提供的組件庫(kù)確實(shí)很誘人,但由于功能太全面,導(dǎo)致程序的體積大,有時(shí)候使用不當(dāng),可能會(huì)影響程序運(yùn)行效率。
在Flex的幫助手冊(cè)中,有一個(gè)專門的章節(jié)講了程序的優(yōu)化,下面是我結(jié)合幫助作的幾點(diǎn)小結(jié):
1、避免容器的多級(jí)嵌套,減少相對(duì)尺寸、相對(duì)定位的使用。
在使用百分比來(lái)給容器內(nèi)的元件定尺寸,一旦容器中的任何一個(gè)元件的位置和尺寸變化,都會(huì)引發(fā)容器對(duì)所有子級(jí)的重定位動(dòng)作。如果嵌套的級(jí)別很深,這個(gè)計(jì)算量會(huì)很大。
2、盡量使用輕量級(jí)的容器
Canvas是體積最小的容器,它只支持絕對(duì)定位。很多時(shí)候,都可以使用它來(lái)代替HBOx和VBox。另外,Canvas也是我們編寫自定義容器性質(zhì)組件的一個(gè)首選。它具有容器的基本功能,利于擴(kuò)展。
3、避免使用大體積的組件,比如DataGrid、AdvancedDataGrid
大個(gè)子組件的功能強(qiáng)大,但開(kāi)銷也是非常大的。由于功能的復(fù)雜性,使得皮膚、樣式、itemRenderer的實(shí)現(xiàn)都格外復(fù)雜。
4、處理數(shù)據(jù)時(shí)多用分頁(yè)的方式
在使用數(shù)據(jù)類型控件時(shí),盡量減少數(shù)據(jù)一次的顯示量。比如TileList,它會(huì)把數(shù)據(jù)一次性全部創(chuàng)建,不管是不是需要顯示,這樣很浪費(fèi)資源。 ViewStack 、TabNavigator等在處理元件時(shí),并不是一次創(chuàng)建,只要元件在第一次被顯示時(shí)才創(chuàng)建,這樣,就避免的不必要的開(kāi)銷。
5、setStyle和styleName
Flex 組件的皮膚都是可視化元件,組件在自身初始化時(shí),會(huì)使用當(dāng)前的樣式比如styleName完成所有皮膚元件的繪制。如果我們?cè)谶\(yùn)行期間通過(guò)setStyle修改了組件的樣式,組件的尺寸、位置就會(huì)作相應(yīng)調(diào)整。聯(lián)系到第一條,如果組件位于一個(gè)層級(jí)很深的容器中,也會(huì)有一個(gè)大的計(jì)算量。
1、避免容器的多級(jí)嵌套,減少相對(duì)尺寸、相對(duì)定位的使用。
在使用百分比來(lái)給容器內(nèi)的元件定尺寸,一旦容器中的任何一個(gè)元件的位置和尺寸變化,都會(huì)引發(fā)容器對(duì)所有子級(jí)的重定位動(dòng)作。如果嵌套的級(jí)別很深,這個(gè)計(jì)算量會(huì)很大。
2、盡量使用輕量級(jí)的容器
Canvas是體積最小的容器,它只支持絕對(duì)定位。很多時(shí)候,都可以使用它來(lái)代替HBOx和VBox。另外,Canvas也是我們編寫自定義容器性質(zhì)組件的一個(gè)首選。它具有容器的基本功能,利于擴(kuò)展。
3、避免使用大體積的組件,比如DataGrid、AdvancedDataGrid
大個(gè)子組件的功能強(qiáng)大,但開(kāi)銷也是非常大的。由于功能的復(fù)雜性,使得皮膚、樣式、itemRenderer的實(shí)現(xiàn)都格外復(fù)雜。
4、處理數(shù)據(jù)時(shí)多用分頁(yè)的方式
在使用數(shù)據(jù)類型控件時(shí),盡量減少數(shù)據(jù)一次的顯示量。比如TileList,它會(huì)把數(shù)據(jù)一次性全部創(chuàng)建,不管是不是需要顯示,這樣很浪費(fèi)資源。 ViewStack 、TabNavigator等在處理元件時(shí),并不是一次創(chuàng)建,只要元件在第一次被顯示時(shí)才創(chuàng)建,這樣,就避免的不必要的開(kāi)銷。
5、setStyle和styleName
Flex 組件的皮膚都是可視化元件,組件在自身初始化時(shí),會(huì)使用當(dāng)前的樣式比如styleName完成所有皮膚元件的繪制。如果我們?cè)谶\(yùn)行期間通過(guò)setStyle修改了組件的樣式,組件的尺寸、位置就會(huì)作相應(yīng)調(diào)整。聯(lián)系到第一條,如果組件位于一個(gè)層級(jí)很深的容器中,也會(huì)有一個(gè)大的計(jì)算量。
相關(guān)文章
flex SystemManger監(jiān)控用戶是否和程序打交道
flex中可以通過(guò)SystemManger監(jiān)控用戶是否和程序打交道2009-05-05
Flex與.NET互操作(十二):FluorineFx.Net的及時(shí)通信應(yīng)用(Remote Shared Objects
遠(yuǎn)程共享對(duì)象(Remote Shared Objects) 可以用來(lái)跟蹤、存儲(chǔ)、共享以及做多客戶端的數(shù)據(jù)同步操作。只要共享對(duì)象上的數(shù)據(jù)發(fā)生了改變,將會(huì)把最新數(shù)據(jù)同步到所有連接到該共享對(duì)象的應(yīng)用程序客戶端。2009-06-06

