Статья хорошая, но там нет никаких цифр — просто GOOD, BAD. Нужно нормальное тестирование, из которого было бы понятно насколько быстрее тот или иной селектор и главное сколько это в абсолютных значениях.
Пока складывается впечатление что проблемы могут возникнуть только на очень больших страницах с десятками тысяч элементов подходящих под селектор. Например возникли у гитхаба, на странице с диффом speakerdeck.com/jonrohan/githubs-css-performance
Меня тоже давно интересует этот вопрос. Думаю тут два варианта:
1) я неправильно понимаю ситуацию и на самом деле браузер делает не совсем так
2) эта проблема очень слабо влияет на итоговую производительность
В официальном FAQ пишут что производительность толком не тестировали, но с другой стороны никто не жаловался.
Там есть какие-то оптимизации. Например, если я правильно понял, если никто не слушает поток то, сам поток не будет слушать свой источник событий; или если поток получен с помощью map (someStream.map(someFunction)), но у него нет подписчиков, то и someFunction выполняться не будет. Как-то так.
Когда-то делал мини-игру на эту тему «угадай цвет» (ползунок регулирует сложность). И еще ссылка в углу квадрата с цветом ведет на довольно интересный сайт.
Какая разница чем от него веет? Он решает кучу проблем JavaScript, это важно. Правда я мало знаю про TypeScript, может он и лучше. Но что за аргументы «похожее синтаксис», какая разница? Синтаксис изучается за один день.
Почему вы думаете что игры — это причина, а не следствие, или вообще что-то не имеющее отношения к делу? И зачем вы майнкрафт и неизвестно какие «развивающие игры» свели в одну категорию?
ну это как когда объясняют вычитание на примере «у тебя было 3 яблока, ты отдал одно Васе ...» и тот кому объясняют спрашивает «а почему, собственно, я должен отдавать яблоки Васе?»
Пока складывается впечатление что проблемы могут возникнуть только на очень больших страницах с десятками тысяч элементов подходящих под селектор. Например возникли у гитхаба, на странице с диффом speakerdeck.com/jonrohan/githubs-css-performance
1) я неправильно понимаю ситуацию и на самом деле браузер делает не совсем так
2) эта проблема очень слабо влияет на итоговую производительность
Там есть какие-то оптимизации. Например, если я правильно понял, если никто не слушает поток то, сам поток не будет слушать свой источник событий; или если поток получен с помощью map (
someStream.map(someFunction)
), но у него нет подписчиков, то и someFunction выполняться не будет. Как-то так.Я один не понял о чем речь?