2012-02-15 67 views
0

我有一个问题要问关于Asp.Net母版页。 在主页和页面加载事件我有像Asp.Net - 母版页 - 如何避免不必要的调用

protected void Page_Load(object sender, EventArgs e) 
{ 
    if (!IsPostBack) 
    { 
    if (Session["UserName"] != null && Session["UserLastName"] != null) 
    { 
     lblDisplayName.Text = Session["UserName"].ToString() + " " + Session["UserLastName"].ToString() ; 
    } 
    } 
} 

Master页面代码被应用于第1页和第2页。 每当我从第1页重定向到第2页或第2页到第1页。它执行主页的页面加载。上面的代码每次都执行。是不是可以只设置一次用户名。

有什么可以避免这些吗?

谢谢, Mahesh。

+1

我认为你高估了这3行代码放在服务器上的负载量...... – 2012-02-15 13:57:40

+0

我不知道OP是否知道有多少代码被执行,直到Page_Load以及另一个大“多”后。 – 2012-02-15 13:58:58

回答

0

ASP.NET是无状态的,因为HTTP协议是无状态的;因此,页面1中的主页面实例对页面2所做的请求一无所知。因此,每次页面加载时都必须重新建立标签。

如果您在询问这方面的表现,我不会担心每次都会设置标签。性能最大的问题往往是:

  1. 在客户端上花费很长时间下载的大页面大小。
  2. 低效的数据库查询。
  3. 还有其他的,但这是另一个讨论的话题。
+3

http协议是无状态的 – 2012-02-15 13:59:57

+0

知道了 谢谢Brian Mains – 2012-02-15 14:26:07

0

HTTP是一种无状态协议。

从一个页面转移到另一个页面时,您正在丢失所有状态信息。事实上,很多网络开发中心在无状态协议中提供了某种状态。

我们通过从某个地方 - 饼干或您的案例 - 会话中拉取值来实现此目的。

简而言之,当你的页面加载时,它对之前的页面一无所知。因此,您需要每次检查并设置用户。