buffer

Methods

KISSY.buffer()
Function KISSY.buffer (fn, ms, context)
将 fn 缓存一段时间后, 再被调用执行
Parameters:
  • fn (Function) – 要缓存的函数;
  • ms (Number) – 要缓存多长时间后执行, 默认是 150 ms;
  • context (Object) – 函数 fn 要执行时的上下文环境, 默认是 this;
Returns:

返回缓存后的函数对象;

Return type:

Function

Note

  • 此方法为了避免在 ms 段时间内, 执行 fn 多次. 常用于 resize , scroll , mousemove 等连续性事件中;
  • 当 ms 设置为 -1, 表示立即执行 fn, 即和直接调用 fn 一样;
  • 调用返回函数的 stop 停止最后一次的 buffer 效果

例如

self.__onResize = S.buffer(doResize, 100, this);
$(window).on("resize", self.__onResize);

setTimeout(function(){
    $(window).detach("resize", self.__onResize);
    self.__onResize.stop();
}, 1000);