производительность jQuery при выборе нескольких объектов

Это - больше вопроса о любопытстве. При выполнении следующего:

$('.selector1, .selector2').doSomething()

JQuery полностью пересекает DOM дважды для получения каждого набора объектов, соответствующих каждому селектору, или он находит все элементы в одном обходе DOM?

9
задан Keavon 21 May 2014 в 01:44
поделиться

2 ответа

Я думаю, что он использует функции родного браузера, чтобы найти это, используя:

document.getElementsByClassName()
1
ответ дан 5 December 2019 в 02:07
поделиться

Это действительно зависит от браузера. В более новых браузерах он будет использовать Document.QuerySelectorAll для любых запросов DOM (под капотом это вызывает документ. GteclelementsByClassname для занятий). В более старых браузерах, которые не поддерживают это, то он должен понять его самостоятельно, что, очевидно, будет медленнее.

В целом вы должны сначала найти материал по ID (или, по крайней мере, сужать объем). Класс и имена тегов будут следующими для скорости. По сути, в основном поддерживаемые операции DOM лучше всего.

1
ответ дан 5 December 2019 в 02:07
поделиться
Другие вопросы по тегам:

Похожие вопросы: