Практический пример
По сравнению с JavaScript, сжимать CSS относительно просто. В силу практически полного отсутствия строк, заключенных в кавычки (в основном пути и названия шрифтов), мы можем изничтожить проблемы обычными регулярными выражениями. Когда же мы действительно встречаемся со строкой в кавычках, то мы можем объединить множественные пробелы в один (так как мы не рассчитываем обнаружить их в количестве больше чем 1 в URL или названиях шрифтов). Простейший скрипт на Perl может обеспечить нам все необходимые преобразования:
#!/usr/bin/perl
my $data = '';
open F, $ARGV[0] or die "Не получается открыть исходный файл: $!";
$data .= $_ while <F>;
close F;
$data =~ s!\/\*(.*?)\*\/!!g;# удаляем комментарии
$data =~ s!\s+! !g; # сжимаем пробелы
$data =~ s!\} !}\n!g;# добавляем переводы строки
$data =~ s!\n$!!;# удаляем последний перевод строки
$data =~ s! \{ ! {!g;# удаляем лишние пробелы внутри скобок
$data =~ s!; \}!}!g;# удаляем лишние пробелы и синтаксис
# внутри скобок
print $data;
Осталось прогнать все наши CSS‑файлы через этот скрипт, чтобы сжать их, например так:
perl compress.pl site.source.css > site.compress.css
Путем простых текстовых преобразований можно уменьшить общий объем передаваемых данных почти на 50% (конечный выигрыш очень сильно зависит от стиля кодирования; обычно будет получен менее впечатляющий результат), что обеспечит более быструю работу сайта для конечных пользователей в том случае, если gzip применить не удается.
2.4. JavaScript: жать или не жать?
Давайте рассмотрим далее сжатие JavaScript‑файлов и проведем анализ всех наиболее известных средств статической минимизации JavaScript‑кода. Нам нужно, по сути, ответить на три основных вопроса:
Имеет ли смысл пользоваться каким‑либо минимизатором JavaScript‑кода?
Есть ли среди них универсальное средство, показывающее лучшие результаты в подавляющем большинстве случаев?
Если такого средства нет, то каковы критерии использования набора инструментов?
Итак, с постановкой задачи разобрались. Теперь перейдем собственно к самим инструментам и графикам степени сжатия исходного кода при их применении.
Дата добавления: 2015-05-19; просмотров: 538;