. Сжатие данных — разгоняем wordpress | Makarou.com - когда сайты превращаются в бизнес

Сжатие данных — разгоняем wordpress

И так сегодня мы обсудим такую штуку как сжатие данных, которые отдаются пользователю. :)

Сжатие данных в формате GZIP, поддерживают многие браузеры. Коэффициент сжатия текстовых данных, примерно составляет 0.2-0.3, то есть получается, что данные сжимаются в 2-3 раза.

Но здесь есть один минус, если использовать сжатие на страницах где много картинок, видео, флэш роликов и т.д., то данные почти не сжимаются, а нагрузка на сервер от функций сжатия остается той же. Так что, если ваша страница весит более 30-35 кб, то можно смело включать сжатие. А еще недавно знакомый рассказывал, как заказывал разработку сайта  в одной web студии. Так там, уже все это учитывают: сжатие, кэширование. Кстати примеры разработки сайтов можно посмотреть на их официальном сайте студии, больше на http://www.dkpro.ru/portfolio/.

Теперь мы рассмотрим сами функции сжатия данных, которые  существуют в php.

Zlib – это отдельная библиотека, написанная Jean-loup Gailly и Mark Adler. Обычно она уже скомпилирована с php на хостингах.

Для ее включения просто прописываем в начале файла index.php следующий код.

ini_set('zlib.output_compression', 'On');
ini_set('zlib.output_compression_level', '1');

ini_set(‘zlib.output_compression’, ‘On’); — функция включает сжатие.

ini_set(‘zlib.output_compression_level’, ’1′); — функция устанавливает уровень сжатия, он может быть в диапазоне от 1 до 9. Лучше не использовать уровень сжатия больше 3, так как данные сильно не сжимаются, а нагрузка на сервер вырастает.

И вторая функция сжатия это – встроенный обработчик GZIP, который доступен начиная с 4.0.4 версии PHP.

Для его использования достаточно прописать в начале файла index.php следующий код.

ob_start("ob_gzhandler", 9);

И в конце файла:

ob_flush();

ob_start(«ob_gzhandler», 9); — функция включает сжатие. Второй параметр – уровень сжатие в диапазоне от 1 до 9. Я тестировал со значением 9. И как вышло в итоге, нагрузка на сервер не менялась.

ob_flush(); — функция очищает буфер вывода данных, чтобы не происходило задержек перед отправкой данных в браузер.

Так же если у вас на хостинге включено сжатие с помощью библиотеки zlib, то рекомендую выключить его, так как произойдет конфликт между этими функциями. А выключить можно, например следующим кодом:

ini_set('zlib.output_compression', 'Off');

Либо в самом файле конфигурации php.

Главное не используйте эти функции с плагинами wordpress: Hyper cache, Super Cache. В этих плагинах уже есть эти функции сжатия. Я лично тестировал работоспособность этих функций с данными плагинами. Плагины просто отказывались работать. Так же сжатие не работает в IE6, причину выяснить, пока не удалось. :)

Если вы не используете плагины кэширования, то я лично рекомендую сжимать данные встроенным обработчиком, так как сжатие происходит на уровне ядра php, а не на уровне отдельного модуля.

Вот в принципе и все что можно сказать о сжатии данных. Если будут вопросы, пишите. :)

WordPress

Понравился пост? добавь его к себе в закладки:
Хочешь быть всегда в курсе обновлений блога? подписывайся через: