решено Minify CSS

yura_co

yura_co

master
#1
Поясніть, як працює цей довбаний Minify CSS ....
Вже 2гий день не можу розібратись з двома строками....
Задача така: потрібно зробити лбтікання картинки текстом в файлі стилів.
Ну ніби то все гуд, прописав так:
Код:
.module img {
    max-width:100%;
    height:auto;
    float: left;
    margin: 7px 7px 7px 0;
}
все працює добре, але тільки включаю Minify CSS ,частина
float: left;
margin: 7px 7px 7px 0;
просто зникає
 
OP
yura_co

yura_co

master
Thread Starter #2
Не, ну просто капець, 2 дні мучив домашнє завлання, а тільки написав на форум - все стало на свої місця.
 
Симпатії: Baco
S

SlaSoft

Maestro
#4
придется.. немного на пальцах рассказать о сжатии, а точнее минификации
Но сперва о сжатии
Сжатие потока web (Deflate) основана на алгоритмах LZ77 и Хаффмана
т.е
- замена повторяющихся строк указателями (алгоритм LZ77);
- замена символов новыми символами, основываясь на частоте их использования (алгоритм Хаффмана).

Что делает минификатор?
Он просто удаляет "мусор"
например в css - удаляет переводы строк, пробелы перед свойствами

Условно!!! 20 пробелов превращает в один
Теперь смотрим на сжатие - Повторяющиеся И Частотность

Проводим эксперимент
зипуем не сжатый
зипуем сжатый

На сколько байт уменьшился второй файл?
И.. весь трафик .. ПРАВИЛЬНО сжимается...
Даже если ваш сервер не жмет, то магистральные маршрутизаторы жмут аппаратно и у них это получается лучше и быстрее

Т.е. К чему я это..

К тому что нехрен тратить дорогие человекоресурсы в том числе и установки всяких минификаторов

зы..
Зачем нужно жать сервером.
Потому что канал - это медленный Input/Output
Т.е. 100байт сжатого кода могут превратиться в 1000 несжатого
Т.е. пользователь быстрее примет, и своими ресурсами разожмет. Это окажется быстрее, чем принять несжатый поток
 
ALarik

ALarik

expert
#5
+ момент на перебор контента по регэкспам (хоть и понимаю, что делается по факту однократно), думаю, как выразился камрад выше - включение mod_deflate на уровне сервака сможет дать минимизированный выхлоп, ну и с учетом мобильного траффика, доля сжатого не так сильно различима, я бы тут другую пьесу завел: почему бы на уровне ядра не поставить ДД (девайс детектор), чтобы в зависимости от устройства - подгружать те или иные блоки с кодом\скриптами\стилями ?!
 
ALarik

ALarik

expert
#8
в этом то и суть, недавно пробовал интегрировать на уровне хелпера заточенный класс mobile_detect, и что вы думаете ? хз где, но был затык, не разбирался в чем проблема, там нагруженный проджект был + срочно надо было фиксить.
но вот будет ли спрос, хотя задумка реализации довольно интересная, предлагаю на уровне ядра реализовать с системным конфигом бро !! @Baco это к тебе задача, класс у меня есть готовый, сможешь интегрировать ? я бы даже сделал мини ТЗ, касательно внедрения и какие плюшки получит не только шопмейкер но и владелей и непосредственно конечный пользователь.
 
S

SlaSoft

Maestro
#9
так погодите...
В чем проблема реализации?

просто сделать new Class
и доставать Статикой

MobDetect::isMobile()

Т.е. необходимо только наличие либы
 
Симпатії: Baco
ALarik

ALarik

expert
#10
да, добавляем в framework.php
PHP:
// MD
$devdetect = new Mobile_Detect();
$registry->set('dev', $devdetect);
предварительно в стартапе подтянув класс из каталога хелперов (ему там самое место), а уже на уровне стартапа фронта или даже подгрузки лейаутов, можно спокойно детектить:
PHP:
$this->dev->isMobile();
 
ALarik

ALarik

expert
#12
тоже верно, зачем для бэкенда сунуть, а со статикой - хорошее замечание, не обратил внимания, так видать в прошлый раз делал и не пошло.
 
Зверху