五大方法實現Flex性能優化

Flex性能優化常用手法你是否瞭解,本文就向大家簡單介紹一下,以便能夠使你的Flex應用能夠流暢的運行在客戶端。

AD:

本文向大家簡單介紹一下Flex性能優化常用手法,衆所周知,目前國內的寬帶應用並不是像很多發達國家發達,個人應用帶寬基本上都是2M以下的,怎麼樣能夠使你的Flex應用能夠流暢的運行在客戶端的問題,成爲了制約每個Flex應用開發程序員的大難題。

Flex性能優化常用手法總結

在這裏,我收集整理了一下網絡上關於這方面經驗,歡迎大家補充。

Flex性能優化基本原則:

1.從外部加載媒體(Media)

Heider提到了一個常用的Flex最佳實踐——限制嵌入到應用/SWF文件中的媒體的數量,如圖像、影片及mp3等資源都可以從外部的SWF文件加載。
Flex框架可以直接將圖片、mp3及字體等資源編譯到SWF中。當你想讓最終用戶獲得全部資源時,這種方式確實能派上用場,但是這會導致你的應用長時間停留在“Loading”階段。

2.在嵌入式字體中限制字符集

Heider建議在嵌入式字體中限制字符集以降低SWF文件的總下載時間:
當你在Flex中嵌入一種字體時,你就會獲得該字體的全部字符的支持。儘管這可能是你想要的,但你確信你需要全部字符麼?例如,在一個只面向英文的應用中,你確信你真的想花時間下載中文字符數據麼?

3.緩存框架

Heider回顧了Flex3supportforruntime-shared-libraries(RSL)這篇文章:

從Flex3開始,你可以將Adobe簽名的框架——RSLs緩存到FlashPlayer的cache中。這有兩個好處:首先,緩存在FlashPlayercache中的簽名的框架RSLs可由所有配置好的Flex應用共享。換句話說,如果某人的應用已經下載了500k的簽名的框架RSL,並且該RSL仍舊在FlashPlayercache中,那麼你的應用就可以使用緩存下來的RSL。其次,即使某人清空了其瀏覽器緩存,對FlashPlayercache也沒有任何影響。

4.考慮模塊化

Heider談到了將Flex應用劃分成模塊的好處:減少字體加載時間的另一種方式就是將你的Flex應用劃分成模塊。使用模塊的一個好處在於當加載和卸載模塊時你能完全操控它。
之所以要劃分成模塊的最後一個原因是他們更快,而且我能即時加載它們,實現Flex性能優化。換句話說,在啓動時唯一需要加載的模塊就是Step1.swf模塊。因此,在使用模塊的情況下,最終用戶節省了啓動時間,但是當他從一個模塊切換到另一個模塊時卻需要花更多時間,因爲每個模塊都需要以JIT形式加載。在我的應用中,只有當用戶首次在steps1-5之間切換時需要花更多時間。

5.推遲實例化

Heider圍繞着Flex組件的“creationPolicy”屬性及何時實例化應用的不同部分給出了很多Flex性能優化建議。
如果你想減少從數據下載到用戶真正可以使用的總時間,當務之急就是推遲實例化。這項技術背後的理念就是直到應用真正使用的時候纔在內存中創建對象。
儘管推遲實例化技術會在應用的整個使用過程中導致少許——通常不那麼明顯——的延遲,但與長時間的啓動延遲相比,它還是可接受的。推遲實例化的另一個好處在於內存使用的優化。

以上Flex性能優化原則來自JunHeider在O'Reilly的InsideRIA站點上發表了一篇精彩的文章,該文章就如何加快Flex應用的啓動速度提出了很多建議,以幫助用戶減少看見討厭的“Loading”對話框的出現時間。他深入探討了問題的不同方面,並對每種技術的優勢和劣勢進行了評判。Heider還談到了一個“實驗性”的條款——“使用流”,這是他在討論DirkEismann的帖子(BuildingmonolithicFlexSWFsthatstillstartupquickly.”)時談及的。Eismann提出一項技術以利用FlashPlayer中的多個frames以在部分應用中達到流的目的。查看所有的帖子以更多地瞭解該技術及關於加快Flex啓動速度的建議。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章