Я разрабатываю для запуска веб-приложения и довольно часто сталкиваюсь со следующим кодом.
<div class="items container">
<div class="item">
<div class="property propertyA">Some stuff</div>
</div>
</div>
Наш типичный селектор jQuery выглядит примерно так:
$("div.items.container > div.item > div.property.propertyA").map(doStuff());
заключается в том, что мы вызываем селектор классов ОЧЕНЬ часто до того момента, когда большая часть времени, затрачиваемого на выполнение JS, тратится на выполнение внутреннего метода curCSS jQuery.
Хотя у нас может быть только один контейнер элементов, он может содержать несколько сотен элементов каждыйс десятками свойств.На самом деле на странице всегда присутствует около 5K + HTML-тегов.
Мы объединяем все больше и больше логики на стороне клиента для размещения новых функций.Я чувствую, что это не будет устойчивым в течение длительного времени, так как некоторые браузеры уже показывают смертельное сообщение «Ваша страница не отвечает» при некоторых условиях.Мы думаем о рефакторинге всей клиентской стороны довольно скоро.
Я думал о реализации некоторых новых тегов XHTML в новом пространстве имен xml, чтобы он мог выглядеть следующим образом:
<items>
<item>
<propertyA>Some Stuff</div>
</item>
</items>
Я бы тогдабыть в состоянии выбрать следующий способ:
$("items > item > propertyA")
или напрямую
$("propertyA")
Исправьте меня, если я ошибаюсь, но избавившись от моих медленных селекторов CSS в пользу некоторого "getElementsByTagName""может сэкономить мне много времени здесь, делая мой css cuter и мой общий код аккуратнее.Будет ли такое решение работать?
Кстати: здесь мы работаем с предположением, что IE не существует, и Firefox 3+ ||Chrome 3+ - наша целевая аудитория.