淺談ListBox在Windows Phone 7 中的使用(2)

來源:互聯網
上載者:User

在前篇《淺談ListBox在Windows Phone 7 中的使用》  中大致介紹了ListBox在Windows Phone 7的用法,今天將繼續深究ListBox。主題是ListBox的效能問題。

我相信,如果大家將自己的Windows Phone 部署到phone 7真機或多或少會遇到效能上的問題,當然這也是模擬器和真實裝置區別之一,而這些問題很大程度上是ListBox的渲染以及從web上下載圖片造成的。這裡有一篇微軟WP7團隊提供的關於ListBox效能的文章,還是值得大家一看的,裡面是微軟WP7團隊對如何最佳化windows phone 程式給出的建議。是Colin Eberhardt對NoDo做的效能測試,可以發現,ItemsControl可以在更短的時間內提供類似ListBox的功能。

 

我們在真實機上測試的時候,可能會遇到的一個問題就是當我從一個頁面跳到另一個頁面,而在這個頁面中有有一個比較複雜的UI(比如說ListBox中有100條資料,而且ListBox應用的模板相對複雜)。這時候我們的程式感覺像死掉了,介面一動不動。小七很無辜的說道,我還沒死,我只是在載入資料和渲染介面,等我弄好了我就活過來了,請耐心等我1分鐘。使用者能夠等1分鐘嗎? 這會給使用者帶來很不好的體驗。國外有研究說全景布局控制項(Panorama控制項)載入會消耗大約1.6秒!

當應用程式啟動的時候,有啟動畫面會告知使用者程式正在啟動,而我們在切換頁面的時候,也可以加上類似的效果,告訴使用者,請稍等,我正在載入。國外大牛Colin Eberhardt 就提供了一種不錯的想法,叫延長載入(DeferredLoadContentControl),以下是兩種載入的使用者比對圖

 

 

具體的代碼可以參考 DeferredLoadContentControl.zip 

如果你的ListBox中的項目比較複雜,建議使用LazyListBox,一種在滑動時使用簡單模板,在停止滑動時再換為正常(即複雜UI)的模板,具體的可以參考 http://blogs.msdn.com/b/ptorr/archive/2010/10/12/procrastination-ftw-lazylistbox-should-improve-your-scrolling-performance-and-responsiveness.aspx 

在mango中,windows phone team已經對ListBox做了最佳化,如果你的ListBox中有圖片,它會啟用後台線程去處理,如果你已經升到Mango,那麼你可以看看ListBox有什麼改變,或者你也可以再將LazyListBox替換為ListBox.....

PS:這篇文章在草稿箱存了一月有餘,今天抽了點時間整理髮布... 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.