2

我有一些元素监听窗口调整大小和滚动事件。为了使代码清晰易读,我在不同的块中多次声明了相同的窗口事件,如下所示...

$('#foo')...
$(window).resize(function() {
    $('#foo')...
});

// lots of code...

$('#bar')...
$(window).resize(function() {
    $('#bar')...
});

// and so on..

我认为一般应该写成

$(window).resize(function() {
    $('#foo')...
    $('#bar')...
});

// lots of code

$('#foo')...

// lots of code

$('bar')...

我的问题是,如果我多次声明窗口事件,它会对 jQuery 性能有什么影响吗?

4

1 回答 1

0

是的,但很少。JQuery 将不得不在调整大小队列中经过一个额外的回调。大不了,对吧?

也考虑一下,您的代码正在进行 2 个函数调用:

  1. $()
  2. resize()

你可以做这些来改善:

  1. 将您的$(window)调用(如评论中的@undefined 所说)缓存到变量中。这样做会减少对$().
  2. 尝试使用on('resize', function(){})更好的优化(根据 jQuery 文档)
于 2012-09-26T06:12:40.947 回答