zoukankan      html  css  js  c++  java
  • 判断是否首次触发pageLoad 与 PageRequestManager.getInstance()对象的几个事件触发顺序

       普通的Web页面初始加载时,我们一般会用if(!Page.IsPostBack)来判断一下该页面是初次加载还是通过回传加载。对于 ASP.NET AJAX  的客户端js脚本中的pageLoad事件也有它的是初始加载还是通过回发触发的pageLoad。
       刚跟皱键讨论具体怎么判断的问题,其想法与我的不谋而合,都是用一个全局变量来标识。不过后来经过一番研究,发现大可不必。按照如下代码来做
     
     1 function pageLoad(sender,e)
     2        {
     3//此处e.get_isPartialLoad()即是判断是初始加载还是回发
     4            if(e.get_isPartialLoad())
     5            {
     6                Sys.WebForms.PageRequestManager.getInstance().add_initializeRequest(InitRequestHandler);
     7                Sys.WebForms.PageRequestManager.getInstance().add_beginRequest(BeginRequestHandler);
     8                Sys.WebForms.PageRequestManager.getInstance().add_endRequest(EndRequestHandler);
     9            }

    10        }


    只e.get_isPartialLoad()就ok了。

    另外,Sys.Web.PageRequestManager.getInstance()的几个事件的顺序可以按照如下方式代码来测试一下,它们的顺序为
       initializeRequest→beginRequest→   向服务器端发送数据→接收数据→pageLoading→pageLoad→endRequest
     1 function pageLoad(sender,e)
     2        {
     3            if(e.get_isPartialLoad()==false)
     4            {
     5                Sys.WebForms.PageRequestManager.getInstance().add_initializeRequest(InitRequestHandler);
     6                Sys.WebForms.PageRequestManager.getInstance().add_pageLoading(PageLoadingHandler);
     7                Sys.WebForms.PageRequestManager.getInstance().add_pageLoaded(PageLoadedHandler);
     8                Sys.WebForms.PageRequestManager.getInstance().add_beginRequest(BeginRequestHandler);
     9                Sys.WebForms.PageRequestManager.getInstance().add_endRequest(EndRequestHandler);
    10            }

    11        }

    12        
    13        function PageLoadingHandler(sender,e)
    14        {
    15            alert("PageLoading");
    16        }

    17        
    18        function PageLoadedHandler(sender,e)
    19        {
    20            alert("PageLoaded");
    21        }

    22        function InitRequestHandler(sender,e)
    23        {
    24            alert("InitRequestHandler");
    25        }

    26        
    27        function BeginRequestHandler(sender,e)
    28        {
    29            alert("BeginRequestHandler");
    30        }

    31        
    32        function EndRequestHandler(sender,e)
    33        {
    34            alert("EndRequestHandler");
    35         }
    点个广告:
  • 相关阅读:
    AJAX异步传输——以php文件传输为例
    js控制json生成菜单——自制菜单(一)
    vs2010中关于HTML控件与服务器控件分别和js函数混合使用的问题
    SQL数据库连接到服务器出错——无法连接到XXX
    PHP错误:Namespace declaration statement has to be the very first statement in the script
    【LeetCode】19. Remove Nth Node From End of List
    【LeetCode】14. Longest Common Prefix
    【LeetCode】38. Count and Say
    【LeetCode】242. Valid Anagram
    【LeetCode】387. First Unique Character in a String
  • 原文地址:https://www.cnblogs.com/hanxianlong/p/902674.html
Copyright © 2011-2022 走看看