zoukankan      html  css  js  c++  java
  • 关于Page带母版页等加载的顺序那些事

    WebForm的一堆事件挺让人头疼,常常搞混这些事件的顺序。如何在适当的事件阶段设置一些属性或执行某种操作,所以归纳下:

    原文:

    http://www.betterbuilt.com/testload.aspx

    图:

    咋一看可能有点晕乎(作者把用户控件,母版页这些都弄上了),一堆处理阶段,我分了下组,主要有以下大的阶段:

    1.初始化阶段Init

    2.加载阶段Load

    3。预渲染阶段PreRender

    而对于Page来说,在每个阶段开始前和结束后对应有Pre*这样的预阶段和*Complete的完成阶段。

    如上有细分(1.Page PreInit预初始化 2.Page Init 初始化 3.Page InitComplete初始化完成 4.Page PreLoad 预加载 5.Page Load加载 6.Page LoadComplete加载完成

    7.Page PreRender 预渲染 8.Page PreRenderComplete预渲染完成 )

    当然了,对于三大阶段不是一下子就搞定的,需要还得照顾孩子。

    整体上来说,访问AAA.aspx这个页面,

    A.显示Page要初始化了PreInit

    B。接着自上而下的开始,对于Init,由内而外的,所以先是子控件的Init,才是福控件的Init。

    发现了Master,要对Master Init,不过母板有子控件嘛,所以还是自上而下,碰到了Button Before这个按钮,所以对它Init.

    再往下是一个Content PlaceHolder内容占位啦,对内容页也是从上倒下,由内而外的Init:

    先碰到Page Content Button Init,然后后面有个嵌套的控件,对它由内而外(当然孩子多个的话也是有上而下)。内容页搞定后:

    还是回到Master页来看,后面有个用户控件,还是那一套...

    最后Master Init...

    Page Init...

    Page Init Complete...完成。

    记住一句话:从上到下,由内而外(Init).

    C.要Load和PreRender了,这个和B类似,不过注意顺序

    从上到下,但是由外而内(恰恰这个深层的是相反的)

    就是说先处理父控件在处理子控件。

    所以对于Load来说是:

    Page Load->Master Load->Master 第一个控件 Load->...(碰到深层度的由外而内)....

    归纳:

    Init事件(从上而下,由里而外)

    Load和PreRender事件(从上到下,由外而内)。

    仅作总结,如有错误望指正。

  • 相关阅读:
    wamp配置虚拟主机
    php单例模式
    YII缓存操作
    YII的延迟加载
    之字形打印二叉树
    对称的二叉树
    二叉树的下一节点
    删除链表的重复节点
    链表中环的入口
    字符流中第一个不重复的字符
  • 原文地址:https://www.cnblogs.com/xcf007/p/2809911.html
Copyright © 2011-2022 走看看