當(dāng)ListBox使用StackPanel作為容器時,如果數(shù)據(jù)源包含大量數(shù)據(jù)時,每一條數(shù)據(jù)都要創(chuàng)建可視化的Item來承載數(shù)據(jù),創(chuàng)建這些容器就需要消耗很多時間和內(nèi)存,另外滾動也非常慢,因為需要計算所有這些Item的大小和位置
創(chuàng)新互聯(lián)公司自2013年起,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項目成都網(wǎng)站建設(shè)、做網(wǎng)站網(wǎng)站策劃,項目實施與項目整合能力。我們以讓每一個夢想脫穎而出為使命,1280元南康做網(wǎng)站,已為上家服務(wù),為南康各地企業(yè)和個人服務(wù),聯(lián)系電話:13518219792如下圖所示是ListBox在默認(rèn)情況下加載10000個Gamer(只定義了Id和Name屬性)對象時,IE的內(nèi)存使用情況,此時滾動非常順暢:
如果我們將ListBox的ItemsPanel修改為StackPanel會如何呢?下圖是修改為StackPanel后IE的內(nèi)存使用情況,此時滾動已經(jīng)非常緩慢:
295264k 對 56372k,大概在5倍左右的差距,很顯然ListBox默認(rèn)使用的ItemsPanel不是StackPanel,而且可以很好的處理大量的數(shù)據(jù)加載,我們不用做任何的額外處理
對于這類問題目前有兩種解決方案:
最佳的一種解決方案,其核心思想就是延遲生成每個Item,只有這些Item滾動到可視區(qū)域時才顯示這些Item,在Silverlight中UI virtualization是通過VirtualizingStackPanel來實現(xiàn)的,VirtualizingStackPanel計算哪些Item可見,然后只為這些可見Item創(chuàng)建UI元素,這樣實際創(chuàng)建的UI元素非常少,內(nèi)存消耗就少,每次滾動時,也不需要計算每個Item的大小和位置,只需要計算哪些Item可見,然后為這些Item創(chuàng)建UI元素就可以了,滾動就非常順暢;VirtualizingStackPanel包含兩種模式:standard and recycling,standard模式就是每次Item進(jìn)入可視區(qū)域都會重新創(chuàng)建UI元素,而recycling模式則會重用之前已經(jīng)創(chuàng)建好的UI元素,使用該模式內(nèi)存消耗更少,滾動更平滑
其核心思想是不一次性加載所有數(shù)據(jù),只加載用戶可以看到的數(shù)據(jù),比如ListBox只加載滾到可視區(qū)域的數(shù)據(jù),在Silverlight中實現(xiàn)Data virtualization主要是通過PagedCollectionView實現(xiàn),PagedCollectionView提供分組、排序、過濾等許多功能,使用非常靈活、方便,其核心思想就是內(nèi)部維護(hù)所有Item的集合,這個集合不會和ItemsControl進(jìn)行綁定,將需要在界面中展示的那些數(shù)據(jù)包裝成另外一個集合,這個集合與ItemsControl進(jìn)行綁定,因為這個集合容量較小,所以實際上創(chuàng)建的UI元素非常少,節(jié)省內(nèi)存,具體使用方法請參考MSDN,這里不再贅述
WPF中ScrollViewer提供了IsDeferredScrollingEnabled屬性支持Defer Scrolling,而Silverlight沒有暴露這個屬性不支持DeferScrolling
http://www.silverlightshow.net/items/Virtualization-in-Silverlight-4-RC.aspx
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。
當(dāng)前名稱:SilverlightVirtualizationOverview-創(chuàng)新互聯(lián)
網(wǎng)頁路徑:http://aaarwkj.com/article2/hscoc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供定制網(wǎng)站、網(wǎng)站內(nèi)鏈、用戶體驗、網(wǎng)站營銷、品牌網(wǎng)站制作、品牌網(wǎng)站設(shè)計
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容