1. IsPostBack和ViewState
1.1 概念介绍
IsPostBack,是否回传
ViewState,ASP.NET 使用这种机制来跟踪服务器控件状态值,否则这些值将不作为 HTTP 窗体的一部分而回传。例如,由 Label 控件显示的文本默认情况下就保存在 ViewState 中。作为开发人员,您可以绑定数据,或在首次加载该页面时仅对 Label 编程设置一次,在后续的回传中,该标签文本将自动从 ViewState 中重新填充。因此,ViewState 通常还可以减少数据库的往返次数。
1.2 使用场景
a. 没有回传,则不必理会。
b. 绑定的后台数据在回传的过程中不会改变。
根据IsPostBack判断是否回传,从而避免重复改变
c. 每次回传都需要从后台重新取得数据。
关闭ViewState以减轻网络负荷。
d. ViewState数据很大。
默认情况下ViewState 储存在客户端,并随着页面的 PostBack 反复传递于网络中。我们需要把ViewState改存到数据库或Cache中,范例如下:





























2. 输出缓存
<%@ OutputCache Duration="1000" VaryByParam="DepartmentIndex;CategoryIndex" %>
页面缓存超时时间为1000秒,ASP.NET根据QueryString中的不同DepartmentIndex和CategoryIndex进行缓存不同的版本。VaryByParam可使用正则表达式,如"*"。
3. 其它缓存
Application, 整个站点应用程序域里存活。
Cache,整个站点应用程序集存活,但是可以设置依赖文件,其它缓存键,绝对超时时间,和相对超时时间等来使Cache失效。