多次引用同一事件时jQuery处理器的用法

时间:2013-03-12 14:06:43

标签: jquery performance

使用以下代码是否有任何好处:

$(window).scroll(function () {
  var scrollPos = parseInt( $(document).scrollTop() );
  $(".div1").css({"background-position-y":scrollPos});
  $(".div2").css({"background-position-y":scrollPos});
});

而不是将其分成两个函数,如下所示:

$(window).scroll(function () {
  var scrollPos = parseInt( $(document).scrollTop() );
  $(".div1").css({"background-position-y":scrollPos});
});

$(window).scroll(function () {
  var scrollPos = parseInt( $(document).scrollTop() );
  $(".div2").css({"background-position-y":scrollPos});
});

当然,第二个选项会略微增加处理器的使用量,因为它必须多次计算同一个变量的新值。但是,假设一台相对现代化的机器,在第二个例子中选择第一个机器有什么好处吗?

1 个答案:

答案 0 :(得分:1)

如果您没有按行代码付款,那么任何超过此版本的版本只会增加维护费用:

$(window).scroll(function () {
  $(".div1,.div2").css({"background-position-y": $(document).scrollTop()});
});

并且速度较慢,但​​这与今天的浏览器速度并不相关。

如果您没有通知此更改,我也会删除parseInt,因为scrollTop会返回一个整数。