结合$ .css()调用的性能提升?

时间:2013-04-02 13:22:22

标签: jquery performance optimization

对于我正在维护的jQuery应用程序,我最近做了一些更改,包括使用这样的代码:

$someElement.click(function (e) {
  e.preventDefault();

  $someOverlay.css('left', e.pageX);
  $someOverlay.css('top', e.pageY);
  $someOverlay.fadeIn();
});

并将其修改为:

$someElement.click(function (e) {
  e.preventDefault();

  $someOverlay.css({
    'left': e.pageX,
    'top': e.pageY
  });

  $someOverlay.fadeIn();
});

我发现可以简单地将对象传递给$.css()方法,从而进行了更改。当然,正如我不习惯的那样,我开始考虑这个的性能影响。在我看来,调用$.css()一次比调用两个$.css()调用更有效...但是,这也是JavaScript,这是一种我不熟悉的语言,比方说,C#

那么,问题:上面的代码是一种将一些CSS应用到元素的更高效的方法吗?

2 个答案:

答案 0 :(得分:4)

第一个答案:几乎可以肯定无关紧要。

第二个答案:如果你通过jQuery css方法(这绝非易事!),你会发现使用组合形式(传入spec对象)可能更有效。 / p>

答案 1 :(得分:1)

第二种变体被描述为良好做法here,所以我认为表现会更好。

// passing object literals as parameters is good practice

var $foo = $( '#foo' );

$foo.css({
  'color': 'red',
  'width': '200px',
  'height': '200px'
});