靈活運用 ASP.NET 內建 ViewState 功能改善網站執行效率

主題:靈活運用 ASP.NET 內建 ViewState 功能改善網站執行效率
作者: Eric Huang
什麼是ViewState
簡單的說 ViewState 的功能就是保存網頁上所有的資料,好處是當PostBack發生時,資料不會不見(包含Dropdownlist,checkbox ... 都會保持在你選的那一個)
例如說你在textbox中打了你的名子,PostBack後你的名子還是會出現在textbox中.

最常見到的ViewState運用就是用在Datagrid中,它讓分頁變的很簡單.因為所有的資料已經輸出並保存在Client Side. 不用每換一頁就讀取一次資料庫,節省了系統的資源.

ViewState的好處與缺點
好處:不會佔用系統資源 (記憶體)
缺點:網頁會變大 (多了一串ViewState,會花比較久的時間Load)

ViewState支援的Type
strings, integers, Booleans, arrays, ArrayList, hashtable 和 custom TypeConverters

ViewState注意事項
以下是使用ViewState該注意的地方
1.ViewState 只會保留 <form runat="server"> </form>中的資料
2.ViewState 的預設值是開啟的
3.ViewState 會增加網頁的size (他儲存了網頁上所有的資料,所以如果你有一個很大的datagrid,那網頁可能會超過100k..)
4.你可以用 Trace 來找出網頁的size和ViewState的大小
< %@ Page Language="vb" Debug="true" Trace="true"%>
5.ViewState 可以關掉
< asp:datagrid EnbleViewState="false" ...%> 關掉這個datagrid 的 ViewState
or <%@ Page EnableViewState="false" ...%> 關掉整個網頁的ViewState
or 在web.config中 <Pages EnableViewState="false" ../> 關掉整個網站的ViewState
6.如果你的網頁不需要用到PostBack, 那你可以用 <form></form>取代<form runat="server">這樣就不會產生ViewState了

ViewState使用時機
因為他是預設開的,所以在這裡你就要決定何時"不使用" (縮小網頁size,加快網頁的開啟)
1.如果你的網頁不需要PostBack的話 - 關掉
2.如果你不需要用到 web control event 的話 - 關掉
3.像是Detail page這種沒有互動的網頁,也可以關掉
沒有互動的網頁:例如 Datagrid & Datalist 沒有分頁,編輯,刪除 和 DataRepeater, 只顯示資料的網頁等等

安全性
ViewState 看起來好像是加密的,其實不是.下面看到的亂碼是 base64-encoded ,目的是確保資料傳輸時不會被改掉.所以ViewState Code是可以被駭客還原的

<input type="hidden" name="__VIEWSTATE"
value="dDwxNTgMjE3ATl4Jx621Qn7dDw7bDxpPDE

那要如何加密呢?
首先先將 EnableViewState= 改成 EnableViewStateMAC= 如下
< %@Page EnableViewStateMAC="true" %>
再來在 web.config 或 Machine.config 中加入
< machineKey validation="3DES" />
這樣就可以了. ASP.NET 就會根據你的machineKey去產生hash code 這樣駭客就無法還原了

總結
ViewState是一個很方便的工具,它可以保存網頁上的資料.運用的好,可以節省你很多時間去寫Code.運用的不好會,會影響網頁執行的效率.所以當你的網站建立好時,花點時間去檢查和調整ViewState. 這樣可以讓你的網站變的更快更有效率.
内容概要:本文详细介绍了Scrum.org专业敏捷领导力认证(PAL I)的相关信息,包括考试概述、考试详情、考试大纲、样题和备考建议。PAL I考试包含36道选择题,考试时长为60分钟,通过分数为85%,考试费用为200美元。考试内容涵盖Scrum框架的理解与应用、Scrum团队、事件、工件、完成定义、扩展、人员与团队的发展、领导风格、教练与指导、产品管理、持续质量、优化流程以及敏捷组织的演变等多个方面。通过认证有助于职业发展,提供新的就业机会、更高的薪酬或内部认可。 适合人群:希望获得Scrum.org专业敏捷领导力认证的个人,特别是那些希望提升敏捷管理技能并在组织中推动敏捷转型的领导者和管理者。 使用场景及目标:①帮助考生深入了解Scrum框架及其核心概念;②掌握Scrum团队运作、事件、工件和扩展的实际应用;③理解并应用敏捷领导风格、教练与指导技巧;④学习如何在复杂环境中管理和交付产品;⑤掌握持续质量管理和优化流程的方法;⑥了解如何在传统组织中实施敏捷变革。 阅读建议:备考过程中应先熟悉PAL I考试大纲,制定合理的复习计划。建议参加Scrum.org提供的官方培训课程,多做样题和模拟考试,通过实践不断巩固所学知识。此外,利用ProcessExam.com提供的在线练习测试,评估自己的强项和弱项,有针对性地进行准备,直到能够在模拟考试中取得高分。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值