Комментарии 12
но зачем создавать работу компрессору, если можно отдавать меньшего размера html
Он у вас на сдельном окладе?
Да, gzip и его аналоги, благодаря rle и другим алгоритмам, сжимают повторяющиеся элементы, но зачем создавать работу компрессору, если можно отдавать меньшего размера html...
Пробовали размеры страницы сравнить? Короткие классы vs BEM классы + gzip.
Как мне кажется, в подобных случаях обычно проще использовать какую-нибудь готовую библиотеку. Гуглить по ключевым словам «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/
скажу как человек, который неоднократно парсил сайты с такими классами, это вообще не усложняет, разве что могут спугнуть начинающего
Всё уже давно изобретено - https://hashids.org/
Не очень подходящее решение:
По умолчанию, создаются идентификаторы, которые начинаются с цифр, что не подходит (причина описана в статье)
Отсутствует запрет на использование определенных символов в начале идентификатора
Если задать алфавит только из букв
new Hashids('', 0, 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ');
, то длина идентификатора достигнет 5 символов всего лишь через 39 304 вызовов, что как-то уж совсем мало...
Всё уже давно изобретено - https://www.npmjs.com/package/gulp-minify-css-names
Требовалась генератор, который независимо работает от сборщиков и другого специфичного окружения. Ибо значительная часть генерации html происходила на стороне сервера плюс в рантайме на клиенте, а css отдавался только тот, который нужен для данной страницы и название классов должны были меняться, если обновишь страницу (борьба с блокировщиками рекламы)
Генератор коротких CSS классов и id