ASP.NET效能優化-頁面及控制元件
一談到ASP.NET系統,不得不談到的一個問題是效能優化.儘管ASP.NET本身速度在ASP基礎上快了很讀,但是如果優化做得不好,效果並不大明顯.所以本文專門從頁面和控制元件選擇等角度談談效能優化.效能優化是三兩句話說不清的,我所寫出的僅僅是冰山一角,效能的優化是靠平時經驗的積累和對程式的運作原理的不斷認知。
一、頁面的優化(.aspx)
主要針對幾個頁面屬性
1、EnableViewState(頁面的檢視狀態)。如果無特殊要求設定為false。使用ViewState ,每個物件都必須先序列化到 ViewState 中,然後再通過回傳進行反序列化,因此使用 ViewState是沒有代價的。儘量減少使用物件,如果可能,儘量減少放入 ViewState 中的物件的數目。下面情況基本上可以禁用viewstate:
(1)頁面控制元件 (.ascx)
(2)頁面不回傳給自身。
(3)無需對控制元件的事件處理。
(4)控制元件沒有動態的或資料繫結的屬性值(或對於每個postpack都在程式碼中處理)
單個頁面或每個頁面都禁用 ViewState,如下所示:單個頁面: 每個頁面:在 web.config 中
2、Pagelayout.頁面佈局模型。建議使用Flowlayout(元素不帶絕對定位屬性新增).Gridlayout(絕對定位屬性)由於採用絕對定位,將會比Flowlayout生產更多的程式碼,主要是控制元件的定位資訊。
3、專案釋出的時候切記解除頁面的Debug狀態。
4、Html語言的優化。我的建議是熟練掌握Html/javascript,少用vs.net2003自動生產的程式碼,它會自動生成一些無用的html程式碼。
5、smart navigation設定為true能讓使用者明顯的感覺效能提高。啟用此屬性後對客戶端和服務端影響不大.它能智慧涮新需要涮新需涮新的部分.
二、控制元件的選擇:
Html控制元件和伺服器控制元件的選擇。伺服器控制元件帶來的方便和功能上的實現是html控制元件所不能比擬的。但是是以犧牲伺服器端的資源來取得的。我個人建議:如果html控制元件達不到所要實現的功能,而且和一些指令碼語言(如javascrpt/vbscript)結合也不能實現的話。才會選擇伺服器控制元件。選擇伺服器控制元件後,也儘量對其控制元件優化,如取消一些頁面狀態等(具體看控制元件的優化)
伺服器控制元件的選擇:主要針對幾個常用資料控制元件說明一下:
DataGrid:自帶最強大的資料顯示控制元件,內建了對資料的修改、刪除、新增、分頁等很多實用功能。如果你只需對資料顯示的話,儘量不要選擇DataGrid(它把資料都儲存在viewstate中).也不要使用自帶的分頁功能,microsoft在自動分頁的底層做了很多工作,雖然使用方便了,但效能開銷大了。
DataList:比DataGrid功能少了很多。但自定義性強了很多。特有的多行資料顯示,給我們帶來了很多方便。DataGrid能實現的功能,它基本能實現。所以建議使用它。
Repeater:功能最少,但自定義性非常強。如果只需對資料顯示,建議使用。由於減少了很多功能,對伺服器的效能帶來消耗最小。因此,如果是對資料顯示的話,我基本上都是選擇Repeater然後DataList最後DataGrid
*儘量選擇html控制元件。能在客戶端實現的功能就在客戶端實現(熟練掌握javascript),減少伺服器的壓力。資料控制元件選擇順序:Repeater、DataList、DataGrid
三、伺服器控制元件的優化:
1、Viewstate
控制元件的viewstate與頁面的viewstate基本是一致的。用來儲存控制元件的一些狀態。處理原則和處理頁面的viewstate一樣。有興趣的可以用Datagrid繫結資料測試下viewstate儲存的資料量有多大,它所儲存的資料基本和Datagrid顯示的資料量大小是等同的。
2、Ispostpack
預設false.需要產生事件的時候才需設定為true.
控制元件的優化,主要看你對此控制元件的熟悉情況。對控制元件內部運作的原理越瞭解,就會對其作出合適的優化。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/12639172/viewspace-589268/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 頁面載入效能之優化LCP優化
- 頁面效能優化辦法有哪些?優化
- Web 頁面優化專項 > Lighthouse > 效能分數優化Web優化
- iOS效能優化之頁面載入速率iOS優化
- 【效能優化實踐】優化打包策略提升頁面載入速度優化
- 網頁效能優化網頁優化
- 瀏覽器層合成與頁面效能優化瀏覽器優化
- Android效能優化——列表類控制元件卡頓優化Android優化控制元件
- 前端技術分享:頁面效能優化問題覆盤前端優化
- 從頁面載入到資料請求,前端頁面效能優化實踐分享前端優化
- 效能優化之分頁查詢優化
- 頁面快取優化快取優化
- ASP.NET Core 效能優化最佳實踐ASP.NET優化
- Vue首頁效能優化之gzipVue優化
- 如何進行頁面優化?優化
- App啟動頁面優化APP優化
- 頁面壞UV效能最佳化
- 效能優化小冊 - 提高網頁響應速度:優化你的 CDN 效能優化網頁
- QQ音樂Android客戶端Web頁面通用效能優化實踐Android客戶端Web優化
- IdleHandler,頁面啟動優化神器優化
- 面試題:webpack之效能優化面試題Web優化
- 效能優化之關於畫素管道及優化(二)優化
- Nginx效能優化功能- Gzip壓縮(大幅度提高頁面載入速度)Nginx優化
- 前端頁面效能前端
- 移動端網頁效能優化自查表網頁優化
- 【前端效能優化】vue效能優化前端優化Vue
- 頁面卡頓的優化–圓角優化
- 使用Android Profile做效能分析及優化Android優化
- 前端效能優化實踐 之 百度App個人主頁優化前端優化APP
- Android效能優化,Startalk會話頁GIF記憶體優化實踐Android優化會話記憶體
- Java 效能優化之——效能優化的過程方法與求職面經總結Java優化求職
- asp.net mvc 錯誤頁面ASP.NETMVC
- 頁面渲染:效能分析
- 前端頁面優化,減少 reflow 的方法前端優化
- Next.js頁面渲染的優化方案JS優化
- Vue進階系列 --- 頁面架構優化Vue架構優化
- 頁面優化的一些建議優化
- 前端優化:DNS預解析提升頁面速度前端優化DNS
- 前端面試題 — 前端頁面效能最佳化前端面試題