gpt4 book ai didi

javascript - 在 jQuery 中,在尝试绑定(bind)事件处理程序之前检查元素是否存在是否更快?

转载 作者:行者123 更新时间:2023-12-01 01:56:16 26 4
gpt4 key购买 nike

首先检查元素是否存在,然后绑定(bind)事件处理程序是否更快,如下所示:

if( $('.selector').length ) {
$('.selector').on('click',function() {
// Do stuff on click
}
}

还是直接这样做更好:

$('.selector').on('click',function() {
// Do stuff on click
}

所有这些都发生在文档准备就绪时,因此延迟越少越好。

最佳答案

编写 if 检查的更好方法是这样的

var elems = $('.selector');
if( elems.length ) {
elems.on('click',function() {
// Do stuff on click
});
}

所以让我们测试一下,看看代码告诉我们什么 http://jsperf.com/speed-when-no-matches

Showing performance without elements

最后,您谈论的是毫秒的差异,并且非 if 检查在运行一次时不会被注意到。这也没有考虑到何时需要查找元素,在这种情况下,需要进行额外的 if 检查。这会检查吗

让我们看看他们何时找到元素 http://jsperf.com/speed-when-has-matches

确实没有区别。因此,如果您想节省几分之一毫秒,请执行 if 操作。如果您想要更紧凑的代码,那么就保留 jQuery 的方式。最后它做了同样的事情。

Showing performance with elements

关于javascript - 在 jQuery 中,在尝试绑定(bind)事件处理程序之前检查元素是否存在是否更快?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21989497/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com