事件無疑是AJAX應用中最重要的部分,EXT將事件分為了兩種:自定義事件與瀏覽器事件。
自定義事件
按字面意思就是用戶自己定義的事件,這個事件通常與組件相關。并且需要用戶根據組件的狀態自己觸發。相關的類Ext.util.Observable 、Ext.util.Event(Observable.js)。Ext.util.Observable是所有組件(component)的父類,它使得所有的組件都可以任意的添加自定義事件,它的events屬性對事件進行維護,這些事件實際都是Ext.util.Event對象,Ext.util.Event對象里的listeners屬性對與該事件相關的處理器進行維護。Observable給所有的子類提供了一個統一的接口來發布事件以及管理事件,這一特性對于組件來說是至關重要的。
瀏覽器事件
即傳統意義上的鼠標單擊、移動等等事件,這些事件是由瀏覽器根據用戶的動作自己觸發的,與頁面元素緊密關聯。相關的類Ext.Element 、Ext.EventManager、Ext.EventObject、Ext.lib.Event 。Element包含了常見的DOM方法和屬性,提供一個快捷的、統一的、跨瀏覽器的接口,內置了常用的DOM節點的動作,并且是跨瀏覽器的定位的位置、大小、動畫、拖放等等。對事件的處理,Element實際將這一處理委托給了EventManager,由EventManager對頁面所有的瀏覽器事件進行管理,例如增加事件處理器、移除事件處理器等等,另外EventManager還定義了幾個很重要的方法:onDocumentReady、onWindowResize、onTextResize。其中onDocumentReady尤為重要,通常在頁面需要通過它來啟動我們的AJAX程序,它會在頁面document渲染完畢而圖片等還未下載時調用我們的啟動函數。至于EventObject,它則是對原始的瀏覽器事件進行了封裝,提供給事件處理器一個統一一致的事件接口。Ext.lib.Event呢?EventManager的很多功能其實是調用它完成的,它的listeners、unloadListeners維護著所有的事件處理器。
http://www.tkk7.com/ronghao 榮浩原創,轉載請注明出處:)
posted on 2008-01-17 15:17
ronghao 閱讀(3358)
評論(0) 編輯 收藏 所屬分類:
ajax相關