[url=http://rm.pp.ru/?soft.phpgzip]http://rm.pp.ru/?soft.phpgzip[/url]
Нашёл, про GZIP компрессию. Действительно, сжимает текст сайта в несколько (в 2-4) раз. Быстрее загружаются странички. Быстрее сайт работает. Самое интересное, что обнаружил у себя на сайте из-за этого ошибку в ссылках на изображения. Странно, во всех браузерах работает, но всё равно ведь ошибка есть... ссылки на аватары почему-то как //harzah.net/system идут, зачем-то, http:// есть в галерее (это уже не ошибка, но непонятно зачем оно там) плюс опять же, зачем-то пишется папка system везде, соответственно изображения не показываются...
Код приведу тоже:
<?php
// gzip.php v1.2 - read http://rm.pp.ru/?1.phpgzip
// released on 2004-05-06, by Roman Mamedov<roman at rm.pp.ru>
// license: do with this code whatever you want.
///// Configuration //////////////////
$PREFER_DEFLATE = false; // prefer deflate over gzip when both are supported
$FORCE_COMPRESSION = false; // force compression even when client does not report support
//////////////////////////////////////
function compress_output_gzip($output) {
return gzencode($output);
}
function
compress_output_deflate($output) {
return gzdeflate($output, 9);
}
if(isset(
$_SERVER['HTTP_ACCEPT_ENCODING']))
$AE = $_SERVER['HTTP_ACCEPT_ENCODING'];
else
$AE = $_SERVER['HTTP_TE'];
$support_gzip = (strpos($AE, 'gzip') !== FALSE) || $FORCE_COMPRESSION;
$support_deflate = (strpos($AE, 'deflate') !== FALSE) || $FORCE_COMPRESSION;
if(
$support_gzip && $support_deflate) {
$support_deflate = $PREFER_DEFLATE;
}
if (
$support_deflate) {
header("Content-Encoding: deflate");
ob_start("compress_output_deflate");
} else{
if($support_gzip){
header("Content-Encoding: gzip");
ob_start("compress_output_gzip");
} else {
ob_start();
}
}
?>
Комментарии
На мой взгляд предпочтительнее включать mod_deflate под апачем, а компрессию скриптом только в случае если mod_deflate не доступен.
--
Axel,
Darcs-репозиторий разработок для Drupal
именно, что недоступен, но этим скриптом действительно у меня стал быстрее работать... сжимает всё-таки... я его прописал в index.php, вообще, куда следует прописывать сторонние пхп скрипты, чтобы они работали?
Если в index.php заработало, то значит туда и прописывать
--
Axel,
Darcs-репозиторий разработок для Drupal
хех, ну мало ли? может неправильное место?
работать ведь может тоже по-разному...
С учётом того, что в друпале всё через одно место - через этот самый index.php вызывается, то добавлять туда всё остальное выглядит логично. Гарантируется, что никакие обращения к сайту мимо твоего кода не проскочат.
--
Axel,
Darcs-репозиторий разработок для Drupal
ясно, значит туда и будем помещать...
В кэше друпала и без того используется gzip компрессия, и отдает он контент пожатым. В результате, не ужимается только css, но css ужимать и не рекомендуется, хотя эффект приличный: все мелкие картинки из css тогда оказываются в одном файле, это сильно уменьшает число потоков, да и сам объем css файлов довольно приличный.
Другое дело, что у меня на хостинге, например, php модуль gzip работает некорректно, пришлось отключить копрессию кэша друпала хаком, и использовать mod апача. Вообще, gzip-комрессия, что для апача, что для модуля php включается через .htaccess, если они есть.
просто я заметил, что сжатая этим самым скриптом страничка 7кб, а несжатая 22кб и долго загружается... а так - просто мгновенно, хотя перед показом есть задержка...
[b]Добавлено:[/b]
да, действительно...
добавить надо в htaccess только php_flag zlib.output_compression On
и всё нормально будет, причём в отличие от вышеприведённого скрипта, ссылки на картинки работают в других браузерах, а размер теперь также 7кб, а был 22кб... хм, фантастика... всего одна строчка...
кстати, нашёл по поиску Яндекса страницу по этому поводу и это оказалась страница с Drupal.Ru - [url=http://drupal.ru/node/519#comment-3417]http://drupal.ru/node/519[/url]
а вот насчёт этой [url=http://drupal.ru/node/1794]темы[/url] я так и не понял... почему ссылки на картинки такого вида? откуда там system и как это оттуда убрать?
Просто для информации: Ускоряем JavaScript. В статье, в частности, описаны плюсы-минусы сжатия контента (раздел "Сжатие").
Ну так это и происходит за счет сжатия css файлов. Могут быть проблемы с некоторыми браузерами. Сжимать или не сжимать css? Я для себя так и не определился.
не знаю, я для себя решил "сжимать", у меня в Опере всё работает... хех...
ИМХО не css жать, а инклудить его в index.php, и его уже потом жать
Хотя, с другой стороны, css чаще всего берется из локального кеша (заголовок-то не отправляется...)
Включил gzip_module - html сжался в 5 раз, а css и js файлы не сжимались.
Нашел решение по настройке gzip_module http://www.lissyara.su/?id=1131
# включен ли модуль mod_gzip
mod_gzip_on Yes
# исключения - ява скрипты и таблицы стилей.
# на самом деле современные браузеры корректно понимают
# сжатые скрипты и CSS - тока Netscape4 не переваривает
# но его немного - поэтому в принципе эти две строки можно
# закомментировать, или поменять `exclude` на `include`
mod_gzip_item_include file \.js$
mod_gzip_item_include file \.css$
</IfModule>
В результате сайт залетал:
html сжатие - в 5 раз
css сжатие - в 2,5 раза
js сжатие - в 2 раза