Silverlight發布時的優化工作(上)

作者: Leon Weng  來源: 博客園  發布時間: 2010-08-24 22:27  閱讀: 2618 次  推薦: 0   原文鏈接   [收藏]  
摘要:Web開發過程中,當項目上線時需要發布程序,在這個過程需要對每種技術進行優化,比如前端需要壓縮資源文件(js,css,圖片等),也會對HTML頁面進行相關處理。Silverlight也不例外,詳細請看下文。

  最近做開發時,silverlight的xap越來越大,如果不進行優化嚴重影響到客戶端的體驗,因此看了一些資料,總結一下。

  一、XAP包是可分解的

  Silverlight應用最終是借助于http協議以web形式到達客戶端的,我們編寫的silverlight包,就是xap,其實是一個壓縮包,包含了許多個控件及資源,可以通過更改后綴為ZIP,通過右鍵打開一探究竟。

image

image  更改后綴后再使用壓縮軟件打開后發現。

image

  了解這個基本知識后呢,就可以從分解這個xap包開始了進行優化工作了,這里的優化工作分為兩部分:

  1. silverlight客戶端緩存驗證
  2. silverlight本身的DLL分解
  3. 資源的分解

  二、Silverlight緩存資源的驗證

  Silverlight在客戶端是可以緩存資源的,一次下載,重復使用。

  這個可以通過Fiddler測試出來資源的加載情況。

  三、利用VS2010中的silverlight中的利用選中“應用程序庫緩存減小xap體積”來控制每一次僅下載所需要的DLL。

image

  在SL項目中添加一個childwindow,然后我們改寫一下MainPage.xaml.cs代碼:

 
   public MainPage()
{
InitializeComponent();

this.Loaded += new RoutedEventHandler(MainPage_Loaded);
}


void MainPage_Loaded(object sender, RoutedEventArgs e)
{
Test t
= new Test();
t.Show();
}

  就是在加載的時候彈出一個子窗口,此時編譯一下解決方案會發現:

image

  在web下的ClientBin文件夾中多出了一個System.Windows.Controls.zip文件,這個就是因為選中了上面的選項,使用Fiddler監控一下會發現第一次加載如果不打開子窗口,就不會加載system.windows.controls.zip這個包了。

  四、控制圖片資源

  我們可以將圖片資源設置為content,并將圖片都放置在web下的文件夾內,這樣就大大減小了xap包的體積,并利用瀏覽器自帶的緩存HTTP請求資源來節省下次的下載量,如果將silverlight的DLL和資源分離開,將會減小xap下載的體積和縮短等待時間,并且可以利用IIS來做普通的圖片下載,利用瀏覽器自帶的緩存能力將第一次請求的圖片緩存起來備用。

0
0
 
標簽:Silverlight
 
 

文章列表

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 大師兄 的頭像
    大師兄

    IT工程師數位筆記本

    大師兄 發表在 痞客邦 留言(0) 人氣()