Как стать автором
Обновить

Комментарии 12

но зачем создавать работу компрессору, если можно отдавать меньшего размера html

Он у вас на сдельном окладе?

Ну может быть gzip as service с побайтной оплатой. Я не удивлюсь если сейчас и такое есть )

Да, gzip и его аналоги, благодаря rle и другим алгоритмам, сжимают повторяющиеся элементы, но зачем создавать работу компрессору, если можно отдавать меньшего размера html...

Пробовали размеры страницы сравнить? Короткие классы vs BEM классы + gzip.

В случае использования gzip + коротких классов и id, страницы худели в среднем на 37%, в сравнении с просто отдачей gzip. Чем больше html элементов на странице и/или css классов, тем существенней прирост.

Что-то сомнительно, должно быть ровно наоборот. А где можно реальные данные увидеть?

Как мне кажется, в подобных случаях обычно проще использовать какую-нибудь готовую библиотеку. Гуглить по ключевым словам «CSS minifier "class name"» и т. п.

Статья 5-летней давности:
Reducing CSS bundle size 70% by cutting the class names and using scope isolation
https://www.freecodecamp.org/news/reducing-css-bundle-size-70-by-cutting-the-class-names-and-using-scope-isolation-625440de600b/

скажу как человек, который неоднократно парсил сайты с такими классами, это вообще не усложняет, разве что могут спугнуть начинающего

Именно так. Это совершенно не проблема для более-менее приличного парсера.

Как решение, могла бы сработать смена алгоритма генерации на постоянной основе, но и это не трудно обойти.

Не очень подходящее решение:

  • По умолчанию, создаются идентификаторы, которые начинаются с цифр, что не подходит (причина описана в статье)

  • Отсутствует запрет на использование определенных символов в начале идентификатора

  • Если задать алфавит только из букв new Hashids('', 0, 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'); , то длина идентификатора достигнет 5 символов всего лишь через 39 304 вызовов, что как-то уж совсем мало...

Требовалась генератор, который независимо работает от сборщиков и другого специфичного окружения. Ибо значительная часть генерации html происходила на стороне сервера плюс в рантайме на клиенте, а css отдавался только тот, который нужен для данной страницы и название классов должны были меняться, если обновишь страницу (борьба с блокировщиками рекламы)

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории