现在的位置: 首页 > 综合 > 正文

探讨客户端事件生命周期之执行顺序篇

2012年09月08日 ⁄ 综合 ⁄ 共 1070字 ⁄ 字号 评论关闭

该篇文章主要是来谈论一下整个客户端事件的生命周期,

并且着重讲一下各个事件执行的先后顺序,

而对于事件里面的内容的讲解则不会过多深入,

因为事件里面内容的讲解涉及很多方面,

不同的应用程序会有不同的应用,所以不方便几种讲解,

所以只是讲解一下各个事件执行的先后顺序,

同时在注释中会标明在特定的事件中会有哪些合理的且常见的操作。

在客户端事件中,主要包括三种类型的事件,

第一种即是 Application 下的事件

第二种即是 PageRequestManager 下的事件

第三种则是 DomEvent 下的事件

这三种类型的事件都很重要,

Application 事件则是无论在整页更新还是异步更新中都很重要,

对于 PageRequestManager 则在 AJAX 中为重中之重,

对于 DomEvent 则在进行客户端组件的开发时显得更加重要,

其主要的用法有 Sys.UI.DomEvent.addHandler()  <=> $addHandler()

                       Sys.UI.DomEvent.removeHandler() <=> $removeHandler()

                       Sys.UI.DomEvent.clearHandlers() <=> $clearHandler()

以上的这几个方法在这里不会介绍,

等以后谈到创建属于自己的 AjaxControlToolkit 控件时自然会多加介绍的。

由于所有需要注意的地方,我在代码注释中都写的很清楚了,

所以就是直接看代码了,

image

image

image

image 

image

以上就是所有的客户端 JavaScript 了

在 Code-Behind 中还有一点点代码

image

以上的整个 Demo ,我在事件中并没有做太多介绍,

有兴趣的可以另寻资料,再多做了解。

再来看一下效果吧

首先当页面第一次加载到浏览器中

会执行的事件按先后顺序有

(注意的是,由于在我的 Demo 中有 ScriptManager 和 UpdatePanel 控件

所以一开始加载的时候会初始化一个 PageRequestManager 实例)

(注意一个 PageRequestManager 的 PageLoaded 事件会先于

Application 的 PageLoad 事件先行触发)

image

当进行一个完整的异步回发过程中,

将会触发的事件按执行的先后顺序有

(注意,Application 的 Load 事件会先于 PageRequestManager 的

EndRequest 执行,而慢于其 PageLoaded 事件的执行)

image

 

                                            2010—1—28

抱歉!评论已关闭.