【问题标题】:sequences of page life cycle in ASP.NetASP.Net 中的页面生命周期序列
【发布时间】:2017-01-11 22:47:36
【问题描述】:

我是 ASP.Net 的新手,所以我的问题可能有点愚蠢,我不太了解 ASP.Net 页面生命周期中的每个阶段是如何工作的,我编写了一些代码,包括一个简单的页面一个标签控件和一个按钮控件就可以了,发现顺序是:

1.页面初始化事件处理完毕。

2.页面加载事件处理完毕。

3.页面预渲染事件处理完毕。

4.页面加载事件处理完毕。

5.页面回发事件已处理。

6.按钮点击事件处理完毕。

7.页面预渲染事件已处理。

我的问题是:

  1. 为什么某些事件(如页面加载)会引发两次?

  2. 人们通常说 page_load 事件发生在按钮单击事件之前。我不太明白,人们的意思是在按钮单击事件之前处理 page_load 事件吗?如果是,那我明白了,是不是就像当我们单击提交按钮时,我们实际上触发了 2 个事件,一个用于按钮单击事件,一个用于页面加载事件,然后首先处理页面加载事件?

  3. 谁能把这些阶段简单地解释一下每个阶段的步骤?比如当用户点击一个按钮时,幕后发生了什么

【问题讨论】:

标签: asp.net


【解决方案1】:
  1. 为什么某些事件(如页面加载)会引发两次?

    每个来自服务器的页面请求都会引发一次 PageLoad 事件。当一个 asp.net 页面被发送回服务器时,它的 PageLoad 事件将被再次调用。如果您检查 IIS 日志,您应该会看到来自浏览器/客户端的两个页面请求。第一个将是页面的原始请求,第二个将在您按下按钮之后(我认为这会导致回发)。

  2. 人们通常说 page_load 事件发生在按钮单击事件之前。我不太明白,人们的意思是在按钮单击事件之前处理 page_load 事件吗?如果是,那我明白了,是不是就像当我们单击提交按钮时,我们实际上触发了 2 个事件,一个用于按钮单击事件,一个用于页面加载事件,然后首先处理页面加载事件?

    在您的 asp.net 页面的生命周期中,它从客户端请求页面开始,并在页面呈现给客户端之后结束。 Andrew Shepherd 发送给您的链接提供了一个非常好的关于 asp.net 页面生命周期的教程。请务必阅读并理解它。

  3. 谁能把这些阶段简单地解释一下每个阶段的步骤?比如当用户点击一个按钮时,幕后发生了什么?

    这真的取决于你连接到按钮的东西。该按钮可能会导致客户端脚本执行,或者可能会导致 Web 服务器上发生某些操作。

【讨论】:

  • 对于问题2,我发现这篇文章对我来说有点难,所以我只想知道我的理解是点击提交按钮时,实际上会触发2个事件,一个用于按钮点击事件,一个用于页面加载事件和一个页面加载事件首先处理,如果这是正确的,那么我可以有一个大致的想法,然后开始进一步挖掘文章
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-01-17
  • 2011-07-03
  • 1970-01-01
  • 2012-01-01
  • 1970-01-01
相关资源
最近更新 更多