<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,如需轉載請自行聯系原作者