多次引用同一事件时的jQuery处理器使用情况

多次引用同一事件时的jQuery处理器使用情况,jquery,performance,Jquery,Performance,使用以下代码是否有任何好处: $(window).scroll(function () { var scrollPos = parseInt( $(document).scrollTop() ); $(".div1").css({"background-position-y":scrollPos}); $(".div2").css({"background-position-y":scrollPos}); }); 而不是像这样把它分成两个函数: $(window).scroll(f

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

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

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

如果您没有按代码行付费,那么任何比这个版本长的版本都只会增加维护成本:

$(window).scroll(function () {
  $(".div1,.div2").css({"background-position-y": $(document).scrollTop()});
});
而且速度较慢,但这与今天的浏览器速度并不相关


为了防止您没有通知此更改,我还删除了
parseInt
,因为
scrollTop
返回一个整数。

那么,详细版本的优点是什么?是的,优点是您只需键入
var scrollPos=parseInt($(document).scrollTop()一次。请注意,您还可以将第一个事件处理程序分解为
$(“.div1.div2”)。css
第一个版本还应用1个事件处理程序,而第二个版本应用2个事件处理程序。所以还有一个小的性能,但是除非你在一个文件中这样做数千次,否则你将看不到使用这两个选项的区别。因此,显然没有其他缺点?