在SDK上看到这样一篇文章:开发高性能的 ASP.NET 应用程序,为了让自己有更深的认识写了点代码。

主要代码如下:

Asp.Net中页面内数据的保存和性能问题探讨protected string temp;
Asp.Net中页面内数据的保存和性能问题探讨
Asp.Net中页面内数据的保存和性能问题探讨
private void Page_Load(object sender, System.EventArgs e)
{
Asp.Net中页面内数据的保存和性能问题探讨       temp
="测试";
Asp.Net中页面内数据的保存和性能问题探讨       Label1.Text
=temp;        
Asp.Net中页面内数据的保存和性能问题探讨  }

Asp.Net中页面内数据的保存和性能问题探讨
Asp.Net中页面内数据的保存和性能问题探讨
private void Button1_Click(object sender, System.EventArgs e)
{
Asp.Net中页面内数据的保存和性能问题探讨        TextBox1.Text
=temp;
Asp.Net中页面内数据的保存和性能问题探讨  }


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

Asp.Net中页面内数据的保存和性能问题探讨private void Page_Load(object sender, System.EventArgs e)
{
Asp.Net中页面内数据的保存和性能问题探讨            
if(!Page.IsPostBack)
{
Asp.Net中页面内数据的保存和性能问题探讨                temp
="测试";
Asp.Net中页面内数据的保存和性能问题探讨                Label1.Text
=temp;                       
Asp.Net中页面内数据的保存和性能问题探讨            }

Asp.Net中页面内数据的保存和性能问题探讨        }


点击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控件。但如果服务器控件太多,视图状态是默认打开的,对性能肯定也有影响。对于这样的情况,大家说说是如何处理的呢?




   

相关文章:

  • 2022-03-04
  • 2021-08-26
  • 2022-12-23
  • 2021-11-15
  • 2022-01-23
  • 2021-12-03
  • 2022-12-23
  • 2021-07-12
猜你喜欢
  • 2021-05-23
  • 2021-11-06
  • 2022-12-23
  • 2021-12-10
  • 2022-12-23
相关资源
相似解决方案