handler與listener的區別

2021-09-01 09:54:04 字數 1380 閱讀 2674

extjs學習筆記(二):handler與listener的區別

extjs裡handler和listener都是用來對使用者的某些輸入進行處理的,有必要區分一下各自都是怎麼用的。

[color=blue]handler[/color][b][/b]

handler與action相關聯,乙個action可以有多個component引用;

action是乙個可被共享的物件,有五個主要的屬性:text, handler, iconcls, disabled, hidden

component的構建方式比較有意思:

new ext.button(action)

是button接收乙個action物件作為構造引數嗎?但是檢視button的api卻沒有發現action屬性。反而button的構造引數是乙個(object config),也就是說,只是乙個配置物件(包含各種屬性),而action的五個屬性正好button也都有,所以,可以接收乙個action來進行構造。

其他屬性不考慮,看handler,button中的handler配置項文件說明,這個handler是與click event關聯的。也就是說,click是button這個component的首要event(參考action中handler的文件),這就是handler的執行方式:被某個元件的首要event所觸發。

[color=blue]listener[/color][b][/b]

上面說了handler是對首要event的響應函式,而關於event, observable才是根源。

ext.util.observable是一切可進行事件監測之物件的父類(或者介面)。observable只有乙個配置項,那就是listeners,而乙個listener是乙個事件名 + 處理函式的組合,如:

"click" : function(), "mouseover" : function()

observable還提供了很多相關的處理事件的方法,比如新增事件,觸發事件,移除***等等。

由上分析可以總結一下:

1、handler是乙個特殊的listener;

2、handler是乙個函式,而listener是3、handler與action相關,用來讓多個元件共享乙個action。而listener與event相關,可以對event進行方便的管理;

但是handler與普通的event + listener組合還是有一些不同,乙個例子就是,如果用

ext.util.observable.capture(button, function(name))

來事先捕獲click事件,並阻止click時,如果button的click是通過handler來響應的,則capture的return false函式無效,而如果button是定義了包含click事件的listener,則上面的capture生效。

Extjs handler與listener的區別

extjs裡handler和listener都是用來對使用者的某些輸入進行處理的,有必要區分一下各自都是怎麼用的。handler handler與action相關聯,乙個action可以有多個component引用 action是乙個可被共享的物件,有五個主要的屬性 text,handler,ico...

AsyncTask與Handler的相同點跟區別

asysctask定義了三種泛型型別params,progress和result.1,params啟動任務執行的輸入引數,比如http請求的url 2,progress後台任務執行的百分比 3,result後台執行任務最終返回的結果,比如string,比如我需要得到的list asynctask方法...

解決Handler與Activity同步衝突

這個問題可以由handler的乙個子類handlerthread來解決。程式參考自mars老師的android課程第一季第十五集。以及注釋有所改動,如下 package com.handler.androidhandler02 import import android.os.bundle impo...