日期:2014-05-16  浏览次数:20394 次

EXTJS - Observable的delay和buffer参数的区别

记录一些简单但是又怕忘记的小问题:

?

当给发生特定时间触发的事件传递参数时,Ext.util.Observable支持复合参数类型,像下面这样:

?

var fn = function(e, el, args){
	alert('hahahaha');
	alert(args.testId);
};
	
Ext.get('compositeArgs').on('click',fn,this,{
	delay: 3000,
	id: 5
});

?

这其中有个delay参数,其实Observable还有一个buffer参数,这两个是有区别的.

delay参数会延迟指定的值来调用指定的函数,也就是说过3秒才会调用fn,同样的,buffer也是这样的功能,但是区别在于:

为delay时,当延迟的过程中再次触发事件,第一次触发的事件不会被覆盖,而是会继续在指定值后调用

但是为buffer时,如果在延迟的过程中再次触发了事件,第一次的触发的事件是会被覆盖的,也就是最终只会调用最后触发的那个事件.

?

?