#javascript
Можно ли, например, для метода getElementById, сократить область поиска со всей страницы до какой-либо отдельной части HTML-документа? В примереможно конечно, сначала найти container, а потом внутри него уже искать element, но container-то мы ищём опять же по всему документу, а это нерационально в больших документах. Можно ли как-то ограничить зону поиска?
Ответы
Ответ 1
Что-то мне подсказывает, что при построении дерева все ссылки на элементы ID собираю в одном месте и потом используются для быстрого поиска по дереву. Поэтому то, что вы хотите оптимизировать и так уже оптимизировано. Но не буду этого утверждать. В общем как один из вариантов, можно натыкать меток и ограничивать ими, если уж так хочется. По крайней мере они точно собраны в одном месте и до них легко добраться. console.log( document.anchors["part_2"].innerText )Ответ 2
Даже не могу сообразить для чего тебе это надо. id - идентификатор уникальный и может быть только в единственном экземпляре на все странице. И даже если данный экземпляр будет в начале страницы или где-то далеко и обернут в тысячу родительских блоков, это ни как не повлияет на скорость его обнаружения.... Ну может на миллионную долю секунды.... Так что в этом нет ни какого смысла....Ответ 3
Можно. Это имеет смысл для поиска например по имени тега, классу или более сложному селектору. Но для поиска по id это смысла не имеет, так как все id хранятся в хэш таблице и поиск по ней происходит очень быстро (за константное время операций), и там уже нечего ускорять. var area = document.getElementById("searchArea"); var els = area.getElementsByTagName("p"); /* можно и по id поискать, но скорее всего это будет медленнее чем поиском через document.getElementById */ var el1 = area.querySelector("#id1"); console.log(Array.from(els)); console.log(el1);some text
11
22
some text
Комментариев нет:
Отправить комментарий