我有一些元素在监听窗口大小调整和滚动事件。为了使代码清晰可读,我在不同的块中多次声明了相同的窗口事件,如下所示...
$('#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性能会有什么影响吗?
答案 0 :(得分:0)
是的,但很少。 JQuery必须在resize队列中经历一次额外的回调。大不了,对吧?
考虑一下,你的代码正在进行2次函数调用:
$()
resize()
你可以做以下改进:
$(window)
调用(如注释中的@undefined)缓存到变量中。这样做会减少对$()
的调用。on('resize', function(){})
进行更好的优化(根据jQuery文档)