该篇文章主要是来谈论一下整个客户端事件的生命周期,
并且着重讲一下各个事件执行的先后顺序,
而对于事件里面的内容的讲解则不会过多深入,
因为事件里面内容的讲解涉及很多方面,
不同的应用程序会有不同的应用,所以不方便几种讲解,
所以只是讲解一下各个事件执行的先后顺序,
同时在注释中会标明在特定的事件中会有哪些合理的且常见的操作。
在客户端事件中,主要包括三种类型的事件,
第一种即是 Application 下的事件
第二种即是 PageRequestManager 下的事件
第三种则是 DomEvent 下的事件
这三种类型的事件都很重要,
Application 事件则是无论在整页更新还是异步更新中都很重要,
对于 PageRequestManager 则在 AJAX 中为重中之重,
对于 DomEvent 则在进行客户端组件的开发时显得更加重要,
其主要的用法有 Sys.UI.DomEvent.addHandler() <=> $addHandler()
Sys.UI.DomEvent.removeHandler() <=> $removeHandler()
Sys.UI.DomEvent.clearHandlers() <=> $clearHandler()
以上的这几个方法在这里不会介绍,
等以后谈到创建属于自己的 AjaxControlToolkit 控件时自然会多加介绍的。
由于所有需要注意的地方,我在代码注释中都写的很清楚了,
所以就是直接看代码了,
以上就是所有的客户端 JavaScript 了
在 Code-Behind 中还有一点点代码
以上的整个 Demo ,我在事件中并没有做太多介绍,
有兴趣的可以另寻资料,再多做了解。
再来看一下效果吧
首先当页面第一次加载到浏览器中
会执行的事件按先后顺序有
(注意的是,由于在我的 Demo 中有 ScriptManager 和 UpdatePanel 控件
所以一开始加载的时候会初始化一个 PageRequestManager 实例)
(注意一个 PageRequestManager 的 PageLoaded 事件会先于
Application 的 PageLoad 事件先行触发)
当进行一个完整的异步回发过程中,
将会触发的事件按执行的先后顺序有
(注意,Application 的 Load 事件会先于 PageRequestManager 的
EndRequest 执行,而慢于其 PageLoaded 事件的执行)
2010—1—28