Каскадные Таблицы Стилей → CSS3: Во веки веков!

Давайте посмотрим правде в глаза. Mozilla производит настолько много альф, ночных сборок, релизов для разработчиков, что если Вы так и не обратили внимания на выпущенную недавно версию — Firefox 3.6 alpha — то Вас можно вполне понять.
Хотя, на сей раз основания были очень даже веские, чтобы сосредоточить внимание гиков. Поскольку, среди прочих положительных нововедений, внесенные изменения предусматривают:
- свойство -moz-background-size
- множественные фоновые изображения
- новую единицу длины rem
- CSS градиенты
- улучшенное представление display: table
Теперь давайте сделаем важное замечание для прояснения ситуации — это все еще альфа-релиз (alpha release), который пока будут использовать только малейший процент от пользовательской базы Firefox. Тем не менее, у нас есть все шансы увидеть эти изменения в стабильной версии Firefox в конце года.
Персональные блоги → CSS: селектор на два и более классов одновременно
<div class="foo bar">, например), то можно писать так:div.foo.bar { ... }Выяснил случайно экспериментально. Не знал, стыдно.
Каскадные Таблицы Стилей → Танцы с бубном для блондинок, или о tabbed menus и хитрой работе с графикой
JavaScript → Yet Another cSS selector = YASS
Радоваться было недолго, как только я посмотрел в код, то немного ужаснулся: он не соответствовал моим представлениям об исключительной производительности. Совсем не соответствовал. Точнее, немного удовлетворял, но не до конца. Поэтому сразу встал вопрос: а если быстрее?
Почему нельзя сделать быстрое мини-ядро для CSS-селекторов, которое обеспечит базовую функциональность для работы с DOM (ну, совсем базовую — просто выборку элементов, например)? И, самое главное, чтобы это работало не медленнее (в идеале, даже быстрее), чем нативные вызовы.
Клиентская оптимизация → Разгоняем CSS-селекторы. Часть 2: транзитивность
После статьи «Разгоняем CSS-селекторы: стоит ли?» было предложено рассмотреть несколько дополнительных случаев, учитывающих транзитивность селекторов (например, насколько быстрее a c, чем a b c, или наоборот). Данное исследование посвящено как раз разбору таких случаев.
Методика
Методика и уменьшение погрешности подробно рассматривались в первой статье, на них сильно много останавливаться не буду. Скажу лишь, что при наращивании количества классов и идентификаторов Opera стала значительно медленнее (раза в 3) отображать код (при этом общий его объем увеличился примерно в 1,5-2 раза). Скорее всего, в следующую статью войдет исследование влияния количества классов/идентификаторов/размера кода на общую производительность браузера.
Еще раз подчеркну, что действительную ценность представляет относительное изменение времени отображения страницы в пределах одного браузера в зависимости от того или иного случая (а никак не абсолютное или же сравнение разных браузеров: дополнительно присутствует слишком много неучтенных факторов).
читать дальше на webo.in →Клиентская оптимизация → Разгоняем CSS-селекторы: стоит ли?
Виталию Харисову посвящается
После перевода заметки «Оптимизируем CSS-производительность» и справедливых замечаний Виталия
vithar
Методика. Размер файлов
Естественно, что скорость работы одиночного CSS-правила весьма высока, и даже десятки и сотни их не должны заметно замедлить работу браузеров. Поэтому нужно ставить эксперимент по работе с несколькими тысячами правил, иначе точность результатов будет весьма невысока. Использовать JavaScript для генерации HTML/CSS-кода не представляется разумным, ибо тогда придется учитывать еще и скорость работы JS-движка в браузерах, в итоге, эксперимент будет недостаточно чистым.
В конце концов, было решено сгенерить статичные файлы (порядка 300Кб), которые будут содержать достаточное число различных CSS-селекторов. Это самое «достаточное» число подбиралось по нескольким параметрам, в том числе: размер файла (гонять несколько Мб через браузер и интернет совсем не хотелось) и скорость работы HTML/CSS-кода в браузерах (она должна быть достаточно низкой, чтобы файлы в несколько сотен Кб уже заметно тормозили при открытии).