Мысли об универсальном селекторе

Интересные мысли постигли меня касаемо универсального селектора (он же селектор "звёздочка"). Большинство верстальщиков свято верят, что использование оного селектора в разы затормаживает скорость отображения страницы. А, например, в Internet Explorer страница вообще не сможет загрузится, намертво "подвесив" браузер. Однако же будем хладнокровны и обратимся к фактам. Согласно данным w3.org запись вида .warning полностью эквивалентна *.warning, а запись div.warning означает ровно то же, что и div[class~=warning]. Иначе говоря, .warning есть то же самое, что и [class~=warning]. Как все мы хорошо знаем, поиск элементов в DOM идёт справа на лево. Это значит, что запись вида ".warning" указывает выбрать ВСЕ элементы у которых имеется атрибут class с именем warning. Очевидно, что запись *.warning делает абсолютно то же самое — выбирает ВСЕ элементы у которых есть атрибут class с именем warning. Теперь анализируем всё прочитанное и приходим к выводу, что запись вида *[class~=warning] совершенно полностью аналогична записи вида .warning. P.S.: К сожалению, мне пока не удалось найти сколь бы то ни было достоверные сведения о скорости отрисовки страницы при использовании универсального селектора. Буду очень признателен за помощь в этом вопросе. UPD: Найден и прикручен reflow-meter от яндекса. Буду голословен: разница в скорости отрисовки при 5000 кнопок на странице при использовании селекторов классов и универсального селектора составляет в разных браузерах от 5% (FF8, ИЕ7) до 10% (Chrome 15). Причём в ИЕ7 универсальный селектор отрисовывается на 5% быстрее чем селектор классов.

Добавить комментарий