Asp.Net中页面内数据的保存和性能问题探讨
在SDK上看到这样一篇文章:开发高性能的 ASP.NET 应用程序,为了让自己有更深的认识写了点代码。
主要代码如下:
protected string temp;
private void Page_Load(object sender, System.EventArgs e)
{
temp="测试";
Label1.Text=temp;
}
private void Button1_Click(object sender, System.EventArgs e)
{
TextBox1.Text=temp;
}
private void Page_Load(object sender, System.EventArgs e)
{
temp="测试";
Label1.Text=temp;
}
private void Button1_Click(object sender, System.EventArgs e)
{
TextBox1.Text=temp;
}
点击Button后,TextBox1获得变量temp数据,为了提高性能,使用
private void Page_Load(object sender, System.EventArgs e)
{
if(!Page.IsPostBack)
{
temp="测试";
Label1.Text=temp;
}
}
{
if(!Page.IsPostBack)
{
temp="测试";
Label1.Text=temp;
}
}
点击Button后,TextBox1为空,变量temp在提交后数据丢失了,也就是失效了。为了得到想要的效果,只有通过Label1作为数据中介,修改Buttion1_Click方法
TextBox1.Text=Label1.Text;
再次为了提高性能,关闭所有服务器控件视图状态,将Label1、Button1修改EnableViewState=False
点击Button后,Label1回到初始状态,TextBox1获得Label1的初始值。
当然Label1是很有必要保存服务器控件视图状态的,这里只是做一个小测试。
如果temp赋值是通过数据库取数,经过多次处理得到的结果。在Button事件中,需要取得temp变量操作,当然不希望再次重复的temp的赋值过程,于是有Page.IsPostBack,可是客户端提交后temp失效只得求助于Label1控件。但如果服务器控件太多,视图状态是默认打开的,对性能肯定也有影响。对于这样的情况,大家说说是如何处理的呢?