鹤舞博客 我心飞翔

让我们的思维上网,并让它自由飞翔。

导航

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;
  }


点击Button后,TextBox1获得变量temp数据,为了提高性能,使用 Page.IsPostBack 避免对往返过程执行不必要的处理。Page_Load方法修改为

private void Page_Load(object sender, System.EventArgs e)
        
{
            
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控件。但如果服务器控件太多,视图状态是默认打开的,对性能肯定也有影响。对于这样的情况,大家说说是如何处理的呢?




   

posted on 2005-02-05 12:01  鹤舞博客 我心飞翔  阅读(916)  评论(1编辑  收藏  举报