AJAX 中Sys.WebForms.PageRequestManager(ajax请求添加客户端事件)的事件激发顺序

测试代码如下:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="_Default" %>

<head runat="server">
    <title>Sys.WebForms.PageRequestManager</title>
</head>
<body>
    <form id="form1" runat="server">
   
        <asp:ScriptManager ID="ScriptManager1" runat="server">
        </asp:ScriptManager>
        <%=DateTime.Now.ToString() %><hr/>
        <asp:UpdatePanel ID="UpdatePanel1" runat="server">
            <ContentTemplate>
                <%=DateTime.Now.ToString() %>
                <hr/>
                <asp:Button ID="Button1" runat="server" Text="Button" />
            </ContentTemplate>
        </asp:UpdatePanel>
       <script  type="text/javascript" language="javascript">
          Sys.WebForms.PageRequestManager.getInstance().add_initializeRequest(
      function(sender, e)
      {
          alert("add_initializeRequest");   
      }
  );
  
  
  Sys.WebForms.PageRequestManager.getInstance().add_endRequest(
      function(sender,e){
          alert("add_endRequest");
      }
  );
  
  
  Sys.WebForms.PageRequestManager.getInstance().add_beginRequest(
      function(sender,e){
          alert("add_beginRequest");
      }
  );
  
  
  Sys.WebForms.PageRequestManager.getInstance().add_pageLoaded(
      function(sender,e){
          alert("add_pageLoaded");
      }
  );
  
  Sys.WebForms.PageRequestManager.getInstance().add_pageLoading(
      function(sender,e){
          alert("add_pageLoading");
      }
  );
  
  </script>
  
    </form>
</body>
</html>

最终结果如下:

1.页面第一次进入时,会首先激发add_pageLoaded事件

2.异步提交时,事件的激发顺序如下:

add_initializeRequest

add_beginRequest

add_pageLoading

add_pageLoaded

add_endRequest

add_pageLoaded

原文地址:https://www.cnblogs.com/conquer/p/1336520.html