• 判断是否首次触发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         }
    点个广告:
  • 相关阅读:
    android 权限大全
    Android限定EditText的输入类型为数字或者英文(包括大小写),EditText,TextView只能输入两位小数
    Android Application 对象介绍
    数据库关键字
    SQLite数据库增删改查操作
    【转】html之<meta> 标签
    javascript剔除数组重复元素的简单方法
    jQuery性能最佳实践
    css学习笔记
    【转】必须避免的html标签十宗罪
  • 原文地址:https://www.cnblogs.com/hanxianlong/p/902674.html
Copyright © 2020-2023  润新知