有没有更有效的方法来处理重复的功能?

时间:2014-10-07 15:47:09

标签: javascript jquery jquery-plugins frontend

有没有人知道是否有更有效的方法来处理重复功能而不是Cowboy的Throttle plugin?我已经使用它一段时间而且喜欢它,但是在过去的几年中,还有其他任何脚本/创新可以更有效地处理这项任务吗?

作为参考,任务的示例可以是在浏览器调整大小时触发的函数。传统上,我会这样处理:

$(window).resize($.throttle(250, true,
    function() {
        $(window).trigger('onResizeBegin');
    }
));

以上限制了所包含的功能触发的次数等。我很想知道是否有更好的方式来听这些类型的重复检查。在这种情况下,可能是浏览器拖动开始/停止时的承诺,而不是一个不断检查true / false的函数。

1 个答案:

答案 0 :(得分:0)

另一种方法

$(window).resize($.throttle(250, true,
    function() {
        $(window).trigger('onResizeBegin');
    }
));

将是

function onResize() {
  setTimeout(function() {
    $(window).one('resize.throttled', onResize);
  }, 250);
  $(window).trigger('onResizeBegin');
)
$(window).one('resize.throttled', onResize);

因此在中间时间内根本不会触发resize事件。

.one()是一个jquery事情,只会使事件触发一次。