當開發富互聯網應用程序時,最終文件的大小和下載時間是必須要考慮的。Flex Framework提供了多種選擇把應用程序代碼分散到多個SWF文件中,以提高用戶體驗。
Runtime shared libraries (RSLs) 是可被下載并緩存到客戶端的一些文件。當RSL被下載存留在客戶端后,其他應用程序就可以訪問緩存的RSL資源了。應用程序載入兩種RSLs:未簽名和簽名的。未簽名的RSLs,比如標準的和跨域的SWF文件,存儲在瀏覽器緩存里。簽名的RSLs,這是經過Adobe簽名過的,擴展名為.swz,存儲在Flash Player 緩存中。
正如其名,RSL被稱作動態鏈接庫,在運行時被載入。靜態鏈接庫是SWC文件,通過編譯器的library-path和include-libraries編譯進應用程序。采用靜態鏈接的應用程序SWF會產生比較大的文件以及更長的下載時間。使用RSLs的應用程序載入時間短且文件比較小,而且提高了內存使用效率,只是在開始需要花點時間下載RSLs。RSLs的強大體現在多個應用程序共享公共代碼時,因為RSLs只需要被下載一次,多個應用程序動態鏈接到相同的RSL,訪問其中已經緩存在客戶端的資源。雖然RSLs的巨大優點是緩存到客戶端,但是它并不考慮庫中的哪些類被真正用到,就把整個RSL庫都下載來。
Modules和RSL類似,只不過提供了另外一個方法分離應用程序代碼到不同的swf文件上以便減少下載時間和文件大小。使用Modules的好處是,它不像RSLs,主應用程序開始時不需馬上下載modules。應用程序會根據需求載入和卸載modules。使用modules的開發進程中還有個好處:由于每個modules獨立于其他應用程序modules,當需要改變一個modules時,你只需要重編譯這個modules而不是整個應用程序。
你可以使用ActionScript和MXML創建模塊化應用程序。基于Flex的模塊使用<mx:Module>根標簽,而基于ActionScript的模塊需擴展自mx.modules.Module或mx.modules.ModuleBase。
Module類類似于Applications。使用MXML編譯器工具(mxmlc)編譯模塊,生成可被動態載入和卸載的SWF 文件, 你可以通過<mx:ModuleLoader> 和mx.modules.ModuleLoader 和mx.modules.ModuleManager類管理載入和卸載的模塊。
創建模塊化應用程序是提高Flex框架性能的重要方面,提供更多能力控制下載時間和文件大小,使用RSLs和modules,你可以根據哪些可被獨立載入,哪些可被其他程序使用而分離應用程序代碼,兩項技術各有優點,這一章將介紹如何在開發進程中使用它們。
目錄
22.1.創建一個運行時共享庫
22.2.使用跨域的RSL
22.3.使用Flex Framework作為RSL
22.4.優化RSL
22.5.創建基于MXML的模塊
22.6.創建基于ActionScript的模塊
22.7.使用ModuleLoader載入模塊
22.8.使用ModuleManager載入模塊
22.9.載入來自不同服務器的模塊
22.10.與模塊通信
22.11.使用查詢字符串傳遞數據給模塊
22.12.使用連接報告優化模塊
新聞熱點
疑難解答