【張龍】加快Flex應用啟動速度的5種方式
Jun Heider在O’Reilly的InsideRIA站點上發表了一篇精彩的文章,該文章就如何加快Flex應用的啟動速度提出了很多建議,以幫助使用者減少看見討厭的“Loading”對話方塊的出現時間。他深入探討了問題的不同方面,並對每種技術的優勢和劣勢進行了評判。
- 從外部載入媒體(Media)
Heider提到了一個常用的Flex最佳實踐——限制嵌入到應用/SWF檔案中的媒體的數量,如影像、影片及mp3等資源都可以從外部的SWF檔案載入。Flex框架可以直接將圖片、mp3及字型等資源編譯到SWF中。當你想讓終端使用者獲得全部資源時,這種方式確實能派上用場,但是這會導致你的應用長時間停留在“Loading”階段。
- 在嵌入式字型中限制字符集
Heider建議在嵌入式字型中限制字符集以降低SWF檔案的總下載時間:當你在Flex中嵌入一種字型時,你就會獲得該字型的全部字元的支援。儘管這可能是你想要的,但你確信你需要全部字元麼?例如,在一個只面向英文的應用中,你確信你真的想花時間下載中文字元資料麼?
- 快取框架
Heider回顧了Flex 3 support for runtime-shared-libraries (RSL)這篇文章:
從Flex 3開始,你可以將Adobe簽名的框架——RSLs快取到Flash Player的cache中。這有兩個好處。首先,快取在Flash Player cache中的簽名的框架RSLs可由所有配置好的Flex應用共享。換句話說,如果某人的應用已經下載了500k的簽名的框架RSL,並且該RSL仍舊在Flash Player cache中,那麼你的應用就可以使用快取下來的RSL。其次,即使某人清空了其瀏覽器快取,對Flash Player cache也沒有任何影響。
- 考慮模組化 Heider談到了將Flex應用劃分成模組的好處:
減少字型載入時間的另一種方式就是將你的Flex應用劃分成模組。使用模組的一個好處在於當載入和解除安裝模組時你能完全操控它。
...
之所以要劃分成模組的最後一個原因是他們更快,而且我能即時載入它們。換句話說,在啟動時唯一需要載入的模組就是 Step1.swf模組。因此,在使用模組的情況下,終端使用者節省了啟動時間,但是當他從一個模組切換到另一個模組時卻需要花更多時間,因為每個模組都需要以JIT形式載入。在我的應用中,只有當使用者首次在steps 1-5之間切換時需要花更多時間。 - 推遲例項化
Heider圍繞著Flex元件的“creationPolicy”屬性及何時例項化應用的不同部分給出了很多建議。
如果你想減少從資料下載到使用者真正可以使用的總時間,當務之急就是推遲例項化。這項技術背後的理念就是直到應用真正使用的時候才在記憶體中建立物件。
儘管推遲例項化技術會在應用的整個使用過程中導致少許——通常不那麼明顯——的延遲,但與長時間的啟動延遲相比,它還是可接受的。推遲例項化的另一個好處在於記憶體使用的優化。
Heider還談到了一個“實驗性”的條款——“使用流”,這是他在討論Dirk Eismann的帖子(Building monolithic Flex SWFs that still startup quickly.”)時談及的。Eismann提出一項技術以利用Flash Player中的多個frames以在部分應用中達到流的目的。檢視所有的帖子以更多地瞭解該技術及關於加快Flex啟動速度的建議。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/12639172/viewspace-331161/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Android效能最佳化之加快應用啟動速度Android
- 加快Spring Boot啟動的幾種方法 | baeldungSpring Boot
- Android加快編譯速度的另一種方法Android編譯
- Effective前端--加快頁面開啟速度前端
- [譯] 使用自定義檔案模板加快你的應用開發速度
- 泰國加快移動支付應用
- flowable 啟動流程的三種方式
- 加快你的網站響應速度-Vue懶載入網站Vue
- Android中Activity的四種啟動方式Android
- 開啟 Cocoapods 新選項,加快專案索引速度索引
- 「乾貨」5種最常見的移動應用程式測試錯誤方式,如何規避?
- css除去flex類的幾種對齊方式的思考CSSFlex
- Alfred 5 for Mac(Mac應用快速啟動器)AlfredMac
- Alfred 5 蘋果應用快速啟動器Alfred蘋果
- Mac應用快速啟動器Alfred 5 for MacMacAlfred
- 加快Vue專案的開發速度Vue
- Flex佈局應用Flex
- SpringBoot 居然有 44 種應用啟動器Spring Boot
- flex 方式的佈局你用對了嗎?Flex
- oppo reno 7怎麼更改應用動畫速度?oppo reno 7更改應用動畫速度方法動畫
- 6種為你的laravel應用提速的方式Laravel
- Web 效能優化:21 種優化 CSS 和加快網站速度的方法Web優化CSS網站
- 蘋果應用快速啟動器:Alfred 5 for Mac蘋果AlfredMac
- 關於flex佈局的應用Flex
- 一張圖輕鬆掌握 Flink on YARN 應用啟動全流程(上)Yarn
- 用 Python 載入資料的 5 種不同方式Python
- 【譯】Web 效能優化:21種優化CSS和加快網站速度的方法Web優化CSS網站
- [20191202]加快scp拷貝速度.txt
- Python 操作 MySQL 的5種方式PythonMySql
- Mac 中任何來源的應用開啟方式Mac
- Redis最常見的5種應用場景Redis
- 分享Python的5種高階特徵應用Python特徵
- 【譯文】四種使用webpack提升Vue應用的方式WebVue
- 用Flex實現常見的幾種佈局Flex
- 自動化將改變工作性質的5種方式
- 《SpringBoot篇:002》《SpringBoot的三種啟動方式:main、Maven、jar》Spring BootAIMavenJAR
- Ubuntu18.4啟動IntelliJ IDEA 2020.2.2兩種方式UbuntuIntelliJIdea
- Spring Boot 3.3 正式釋出,王炸級更新,應用啟動速度直接起飛!Spring Boot
- Java中建立物件的5種方式Java物件