2

我是比较新的JS,但我很清楚,表现在网络发展的一个非常重要的问题,所以这个问题:JS性能:事件处理中条件VS条件内的事件处理

我已搜查并找到了一些相关的线程(如:Javascript pattern: Conditional event handler),但我发现这很混乱,因为我的场景要简单得多,并且不涉及任何高级概念,如类。

例如,假设我的网站包含由不同的body class =“type”标签定义的各种“类型”页面。为了清楚起见,我们可以有body class =“member-details”,body class =“club-details”和body class =“random-page-type”。想象一下,有很多人说20种可能的身体类型。

考虑一下情况,我可能希望将特定的点击事件处理程序绑定到元素,如果主体是某些类型的,而另一个是其他类型的。

的问题是:

是更好的性能,明智的处理程序放置在处理器的条件或条件?为了清楚起见,伪代码:

1)的事件处理程序的内部条件

ON DOCUMENT READY { 
    if page type is 'club-details' || page type is 'x' || page type is 'y' { 
     bind function1(); 
    } 
} 

2)的内部条件的事件处理程序

if page type is 'club-details' || page type is 'x' || page type is 'y' { 
    ON DOCUMENT READY { 
     bind fuction1(); 
    } 
} 

这是一个非常简单的例子,但我想我如例1所示,要求提供有关始终绑定事件的性能的信息,或者像例2那样通过迭代条件决定是否绑定?

回答

1

由于JavaScript事件是异步执行的,因此您的示例不是性能的术语,而是内存。第二个例子会比第一个例子占用更少的内存,只是因为更少的事件被绑定。与服务器端相比,客户端性能并不重要。话虽如此,你应该考虑编写漂亮和可读的代码,以获得微不足道的性能优势。 Javascript现在非常快速。

+0

感谢您的回复,内容丰富。我对这里的礼节很陌生,但在我将其标记为公认的答案之前,我会拭目以待,看看是否有其他人加入:) –