EOMY.NET
на главную
EOMY.NET
Хостинг EOMY.NET: Форум поддержки
 
 FAQFAQ   ПоискПоиск   ПользователиПользователи   ГруппыГруппы   <b>Лотерея</b>Лотерея   РегистрацияРегистрация 
 ПрофильПрофиль   Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 

RSS Feed

gzip сжатие

 
Начать новую тему   Ответить на тему    Список форумов EOMY.NET -> Техническая поддержка
gzip сжатие
Автор Сообщение
Wink
$a ||= 5;
$a ||= 5;


Зарегистрирован: 08.08.2006
Сообщения: 899
Откуда: Россия, Омск
113191 Монеты

СообщениеДобавлено: Чт, 10 Авг, 2006 03:40    Заголовок сообщения: gzip сжатие Ответить с цитатой

У меня сайт состоит из статических html страничек. Можно ли отдавать их клиенту сжатыми, если его браузер поддерживает gzip-сжатие трафика? Если можно, то как такое сжатие включить?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
eomysupport
Администратор
Администратор


Зарегистрирован: 25.12.2005
Сообщения: 3928

205212 Монеты

СообщениеДобавлено: Чт, 10 Авг, 2006 13:51    Заголовок сообщения: Ответить с цитатой

Здравствуйте,

Спасибо за вопрос,

К сожалению, ответить на Ваш вопрос нет возможности, так как я никогда не имел дела со сжатием страниц.
_________________
Дмитрий

Техническая поддержка бесплатного хостинга осуществляется только через форум поддержки
Часто задаваемые вопросы по хостингу
Условия предоставления услуг бесплатного хостинга
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Wink
$a ||= 5;
$a ||= 5;


Зарегистрирован: 08.08.2006
Сообщения: 899
Откуда: Россия, Омск
113191 Монеты

СообщениеДобавлено: Чт, 10 Авг, 2006 14:23    Заголовок сообщения: Ответить с цитатой

Спасибо, я разобрался уже. Достаточно добавить в .htaccess строки
Код:
AddHandler application/x-httpd-php .html
php_flag zlib.output_compression On

Первая передает html на обработку в PHP, вторая включает сжатие данных сервером.
Результат можно посмотреть здесь
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
eomysupport
Администратор
Администратор


Зарегистрирован: 25.12.2005
Сообщения: 3928

205212 Монеты

СообщениеДобавлено: Чт, 10 Авг, 2006 14:33    Заголовок сообщения: Ответить с цитатой

Неплохо сжимается!

Спасибо! Very Happy
_________________
Дмитрий

Техническая поддержка бесплатного хостинга осуществляется только через форум поддержки
Часто задаваемые вопросы по хостингу
Условия предоставления услуг бесплатного хостинга
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Moon-Link
Интернет на завтрак
Интернет на завтрак


Зарегистрирован: 28.09.2006
Сообщения: 66
Откуда: localhost
2320 Монеты

СообщениеДобавлено: Вс, 12 Ноя, 2006 04:49    Заголовок сообщения: Ответить с цитатой

Приведу еще один способ сжатия страниц методом gzip.

Первая часть кода:
Цитата:

if (strpos(' ' . $_SERVER['HTTP_ACCEPT_ENCODING'], 'x-gzip') !== false) {
$site_gzipper_encoding = 'x-gzip';
}
if (strpos(' ' . $_SERVER['HTTP_ACCEPT_ENCODING'], 'gzip') !== false) {
$site_gzipper_encoding = 'gzip';
}
if (isset($site_gzipper_encoding)) {
ob_start();
}

list($msec,$sec)=explode(chr(32),microtime());
$headtime=$sec+$msec;


Она должна находится в самом верху скрипта. В стандартных CMS ее легко добавить в файл хеадера. В этой части скрипта идет проверка на то, поддерживает ли брауз гзип и засекается время. А также начинается самый главный процесс, что-то наподобие буферизации.



Вторая часть:
Цитата:

if (isset($site_gzipper_encoding)) {
$site_gzipper_in = ob_get_contents();
$site_gzipper_inlenn = strlen($site_gzipper_in);
$site_gzipper_out = gzencode($site_gzipper_in, 2);
$site_gzipper_lenn = strlen($site_gzipper_out);
$pcs_of_total = $site_gzipper_inlenn / 100;
$percent = ceil ($site_gzipper_lenn / $pcs_of_total);
$percent = 100 - $percent;
ob_clean();
list($msec,$sec)=explode(chr(32),microtime());
$site_gzipper_in = str_replace('<!-- site gzipper -->', 'Original size:'.ceil(strlen($site_gzipper_in)/1024).' kb<br>GZipped size: '.ceil($site_gzipper_lenn/1024).' kb<br>Сompression:'.$percent.'%<br>Time: '.round(($sec+$msec)-$headtime,4).' sec.</span>', $site_gzipper_in);
$site_gzipper_out = gzencode($site_gzipper_in, 2);
header('Content-Encoding: '.$site_gzipper_encoding);
echo $site_gzipper_out;
};


Эта часть должна находится в самом низу скрипта. Ее нужно вставлять в файл футера. Она сжимает содержимое "буфера" и выдает пользователю.

Для вывода блока статистики типа

Цитата:
Original size:13 kb
GZipped size: 3 kb
Сompression:80%
Time: 0.0092 sec.


Достаточно вставить в любое удобное место строчку
Цитата:
<!-- site gzipper -->


Сам скрипт разработан умельцем с ником smallcms.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Wink
$a ||= 5;
$a ||= 5;


Зарегистрирован: 08.08.2006
Сообщения: 899
Откуда: Россия, Омск
113191 Монеты

СообщениеДобавлено: Вс, 12 Ноя, 2006 07:51    Заголовок сообщения: Ответить с цитатой

Весь этот скрипт легко заменяется одной единственной строкой
Код:
ob_start("ob_gzhandler");
добавленной в самое начало кода (до вывода html). Посетителям сайта обычно не интересна статистика сжатия, а веб-мастер может посмотреть ее в любом онлайн-тестере gzip.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
Moon-Link
Интернет на завтрак
Интернет на завтрак


Зарегистрирован: 28.09.2006
Сообщения: 66
Откуда: localhost
2320 Монеты

СообщениеДобавлено: Вс, 12 Ноя, 2006 07:55    Заголовок сообщения: Ответить с цитатой

Повторюсь. Вы впредлагаете сразу же сжимать, в приведенном мной коде так же проводится проверка на то, поддерживает ли это брауз или нет. К примеруя часто захожу через мобилу, и если там используется гзип без проверки - я получу совершенную несуразицу. А насчет статистики - она может интересна быть не только мастерам, но и посетителям, которые заботятся о траффике, то есть они будут без боязни потратить его, лазить по вашему сайту.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Wink
$a ||= 5;
$a ||= 5;


Зарегистрирован: 08.08.2006
Сообщения: 899
Откуда: Россия, Омск
113191 Монеты

СообщениеДобавлено: Вс, 12 Ноя, 2006 08:58    Заголовок сообщения: Ответить с цитатой

Moon-Link, насколько я знаю, такая проверка осуществляется сервером автоматически. И если браузер не отдаёт строку
Код:
Accept-Encoding: gzip,deflate
то страница отдаётся сервером не сжатой. Проверено много раз в разных операционках и браузерах. Кстати, приведённый мной способ работает в частности у меня на сайте. Попробуйте зайти через мобилу или как захотите и посмотрите.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
Wink
$a ||= 5;
$a ||= 5;


Зарегистрирован: 08.08.2006
Сообщения: 899
Откуда: Россия, Омск
113191 Монеты

СообщениеДобавлено: Вс, 12 Ноя, 2006 09:06    Заголовок сообщения: Ответить с цитатой

Матчасть: http://www.php.su/functions/?ob-gzhandler
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
Показать сообщения:   
Начать новую тему   Ответить на тему    Список форумов EOMY.NET -> Техническая поддержка Часовой пояс: GMT
Страница 1 из 1

 


EOMY TOP 100 Rambler's Top100   Рейтинг@Mail.ru    



Powered by phpBB © 2001, 2005 phpBB Group






Рейтинг SIMPLETOP.NET