конкретные реализации двигателей выбора CSS - PullRequest
3 голосов
/ 20 июля 2011

Широко известно, что злоупотребление правилами id css считается плохой практикой. На эту тему написано множество постов - вот, например, один из последний .

В таких сообщениях часто упоминается, что селекторы CSS фактически анализируются движками браузера справа налево. То есть, если, скажем, у нас есть селектор #very div, браузер сначала находит все div, а затем проверяет их на наличие родительского элемента с этим самым идентификатором.

Мой вопрос состоит из двух взаимосвязанных частей. Первая часть - это правда? Существует множество реализаций движков css, как открытых, так и проприетарных, было бы неплохо, если бы кто-нибудь, кто знает что-либо о любом из этих движков, пролил свет на эту тему.

Вторая часть вопроса - если это правда, если мы действительно всегда анализируем правила CSS справа налево, почему мы на самом деле делаем это? Я вообще не эксперт по анализу, но не будет ли удобнее определить, какая часть селектора более специфична (генерирует меньший вывод), и начинать фильтрацию не обязательно справа? Это слишком дорого или что-то?

1 Ответ

0 голосов
/ 20 июля 2011

Seteve Sounders недавно провели некоторые тесты , и хотя его тест подтверждает это (по крайней мере, для протестированных браузеров), он также показывает масштаб увеличения производительности.Для элементов типа 6000 dom максимальное повышение производительности при использовании классов по сравнению с потомками составляло 200 мс (что весьма значимо), а среднее значение было намного меньше (и гораздо менее значимо).

Этот тест также показывает, что между браузерами и движками существуют различия (интересно то есть производительность лучшая) тенденция та же.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...