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

Is there a more efficient way to handle repetitive functions?

本文关键字:功能 处理 方法 有效 有没有      更新时间:2023-09-26

有人知道是否有比Cowboy的Throttle插件更有效的方法来处理重复功能吗?我已经使用它一段时间了,很喜欢它,但在过去几年里,有没有其他脚本/创新可以更有效地处理任务?

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

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

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

实现的另一种方法

$(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);

以便在中间时间内根本不会触发调整大小事件。

.one()是一个jquery,它使事件只激发一次。