注册1个具有多个呼叫的事件或注册多个事件?

问题描述 投票:0回答:2

在性能方面,最好是将一个事件注册到一组要调用的函数中,或者只为每个需要调用的函数注册一个不同的事件?我似乎在Google上找不到答案

一个例子:给定这些功能

function doA(){ /* do A */};
function doB(){ /* do B */};
function doC(){ /* do C */};

这样做更好吗?>

var funcs=[];
funcs.push(doA);
funcs.push(doB);
funcs.push(doC);
$(window).on("resize", function(){
    for(var i=0; i<funcs.length; i++){
        funcs[i]();
    }
});

或此

$(window).on("resize", doA);
$(window).on("resize", doB);
$(window).on("resize", doC);

我在此示例中使用的是jQuery,但对于纯Javascript可能会问同样的事情。

请记住,这只是一个示例,在我的实际应用程序中,功能/事件在执行期间会动态添加/删除。

编辑:虽然我同意最好的方法是拥有一个可以调用其他函数的函数,但这只是在其他情况下(即您事先不知道时)必须使用的其他两种方法的示例您有多少个函数可以监听事件。在这种情况下,最好为每个函数都配备一个侦听器,或者创建一个执行该调用的全局侦听器?

在性能方面,最好是将一个事件注册到一组要调用的函数中,或者只为每个需要调用的函数注册一个不同的事件?我似乎找不到...

javascript performance dom-events
2个回答
0
投票

[通用设计原则建议:


0
投票

与JBux达成共识,数组方法似乎有点麻烦,而且也使得了解正在发生的事情变得更加困难。

© www.soinside.com 2019 - 2024. All rights reserved.