天天看點

Silverlight釋出時的優化工作(2)

<b>優化分為兩部分,DLL組織優化及資源優化</b>

<b>一, </b><b>項目資源優化</b>

資源在silverlight中存在形式

Resource —— 資源會被打包在程式集内部

Content——資源會被打包在Xap包裡面

None——資源既不會被內建到程式集内,也不會打包到xap包中。不過我們可以通過設定CopyToOutputDirectory選項讓其自動拷貝到xap包所在目錄。

1,2兩種缺點是造成xap包很大,一次性下載下傳到用戶端比較慢。

3,能生成最小的xap包,資源通過IIS使用URI作為檔案下載下傳通路,第一次加載到silverlight緩存中後,以後将不會下載下傳。

同一個項目中的資源調用驗證

是否緩存已下載下傳圖檔驗證

一個父視窗有圖檔3.jpg,通過父視窗打開的子視窗中有圖檔penguins.jpg,第一次打開時加載,以後将不會再加載兩個圖檔。

<a target="_blank" href="http://blog.51cto.com/attachment/201106/150745285.jpg"></a>

<a target="_blank" href="http://blog.51cto.com/attachment/201106/150759534.jpg"></a>

三種打包方法的下載下傳時間

<a target="_blank" href="http://blog.51cto.com/attachment/201106/150815206.jpg"></a>

<a target="_blank" href="http://blog.51cto.com/attachment/201106/150833140.jpg"></a>

2,資源打包到程式集,由于打包到xap兩者都是下載下傳xap,不做測試。

<a target="_blank" href="http://blog.51cto.com/attachment/201106/150853486.jpg"></a>

<b>二, </b><b>DLL</b><b>優化</b>

檢視silverlight項目屬性的時候會發現這個選項,

<a target="_blank" href="http://blog.51cto.com/attachment/201106/150911578.jpg"></a>

未選中時1090K

<a target="_blank" href="http://blog.51cto.com/attachment/201106/150926713.jpg"></a>

<a target="_blank" href="http://blog.51cto.com/attachment/201106/150941810.jpg"></a>

使用緩存後

<a target="_blank" href="http://blog.51cto.com/attachment/201106/150954345.jpg"></a>

<a target="_blank" href="http://blog.51cto.com/attachment/201106/151008495.jpg"></a>

需要時加載原則來控制下載下傳檔案大小。

這種将xap包中的DLL分别打包的方式,優點在于如果是多項目的silverlight,比如一個解決方案中有2個 silverlight項目,那麼兩個項目都含有system.windows.controls.zip這個包,如果沒有将這些DLL提取出來則分開打包,兩個xap包中均含有system.windows.control.dll,如果提取出來,則兩個xap包都減小了,可以去掉一個system.windows.control.dll的備援。

減小前:

<a target="_blank" href="http://blog.51cto.com/attachment/201106/151023176.jpg"></a>

減小後:

<a target="_blank" href="http://blog.51cto.com/attachment/201106/151040560.jpg"></a>

如果使用了OOB,則此方法不适用。也可以将幾個項目用到的通用DLL都放到ClientBin中。

如果您有其他的方法,歡迎交流。 

     本文轉自wengyuli 51CTO部落格,原文連結:http://blog.51cto.com/wengyuli/587144,如需轉載請自行聯系原作者

繼續閱讀