当前位置 博文首页 > 文章内容

    理解page类

    作者:大愚 栏目:服务器 时间:2020-05-04 9:34:19

    本站于2023年9月4日。收到“大连君*****咨询有限公司”通知
    说我们IIS7站长博客,有一篇博文用了他们的图片。
    要求我们给他们一张图片6000元。要不然法院告我们

    为避免不必要的麻烦,IIS7站长博客,全站内容图片下架、并积极应诉
    博文内容全部不再显示,请需要相关资讯的站长朋友到必应搜索。谢谢!

    另祝:版权碰瓷诈骗团伙,早日弃暗投明。

    相关新闻:借版权之名、行诈骗之实,周某因犯诈骗罪被判处有期徒刑十一年六个月

    叹!百花齐放的时代,渐行渐远!



         服务器端的page对象
    所有我们编写的页面都继承自page对象,可见page对象是非常重要的,page对象提供了哪些功能,直接决定了我们的页面类可以继承什么功能,或者说,直接决定了我们的页面类功能的强大与否!那么,page对象实现了什么功能呢?如前所述的三个客户端的事实,页面类要管理ViewState,还要管理事件。page对象起码要提供这些功能以供我们的页面类重载或者调用。

    page对象提供了四个顺序执行的事件Init,Load,PreRender和Unload,这四个事件是一条主线,依次标明了page对象执行的各个阶段。init事件发生在所有服务器端控件的状态(ViewState)被存储之前。load事件发生在所有服务器端控件的状态被存储之后和所有的事件被触发之前。PreRender事件发生在所有事件被触发之后和要回发给客户端的html还没有回发(这个过程也叫"呈现")之前。unload事件发生在所有html都回发完成以后。从这四个事件可以看到page对象的大致执行步骤。

    详细的page对象事件顺序是这样的:获得客户端的post请求-〉page对象的继承类被构造-〉page对象的ProcessRequest方法被调用->init事件被执行->page对象的虚函数CreateChildControls被调用->服务器端控件的状态(来自post变量和ViewState)被存储->load事件被执行->我们自定义的服务器端控件的事件被执行->PreRender事件被执行->page对象的虚函数Render方法被调用->page对象的虚函数RenderChildren方法被调用->Http响应发往客户端->unload事件被执行->page对象的继承类被解构。我们知道一个页面上的控件很多是包含(父子)关系,所以这里的CreateChildControls和RenderChinldren函数应该就不难理解了。

    这个事件顺序是理解asp.net页面类的关键,和前面客户端的三个事实结合起来理解,就可以解释asp.net怎么样把客户端和服务器端结合起来,从而实现从脚本编程转移到面向对象编程。无论是微软提供的webcontrols,或者是用户自定义控件,涉及到客户端和服务器端交互,原理都与此类似。




    文章来源:博客园

    原文链接:https://www.cnblogs.com/further/archive/2004/06/15/15793.html

    如有侵权,请联系删除!