Модераторы: skyboy, MoLeX, Aliance, ksnk

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Отдать сжатый файл так, чтобы браузер, его расжал сам(gzip) 
:(
    Опции темы
sergejzr
Дата 16.12.2005, 03:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Un salsero
Group Icon


Профиль
Группа: Админ
Сообщений: 13285
Регистрация: 10.2.2004
Где: Германия г .Ганновер

Репутация: нет
Всего: 360



Привет, гуру ПХП. Проблема - не проблема, идея - не идея, короче мысль...

Если гзиппить страничку и посадть правильный header, то браузер после скачивания сам распакует её и покажет.

Теперь предположим у меня есть увесистый яваскрипт. Гзиппить каждый раз при отдаче - мало смысла. Бесполезная нагрузка на сервер просто. Мысль такая - хранить сжатый файл параллельно и просто отдавать его, если браузер понимает гзип, иначе отдавать внутренности несжатого файла.

Это всё дожно работать для клиента как обыкновенный скрипт. В том числе возвращать Not modified, когда надо итд.

Я кое чего пробовал, но с файлом не получилось... Вопрос - может кто занимался этим. Скрипты редко меняются, гзиппить легко, а таким способом можно съэкономить кучу траффика.


--------------------
PM WWW IM ICQ Skype GTalk Jabber AOL YIM MSN   Вверх
CyClon
Дата 17.12.2005, 22:04 (ссылка)    | (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 838
Регистрация: 3.12.2005

Репутация: нет
Всего: 4



Мне бы еще почитать что такое gzip то есть зачем оно и толку... Ну и способы применения...


--------------------
user posted image
PM   Вверх
Mal Hack
Дата 17.12.2005, 22:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 8
Всего: 261



sergej.z а просто использовать зипование на уровне сервера через mod_deflate не пробовал?
PM ICQ   Вверх
sergejzr
Дата 18.12.2005, 21:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Un salsero
Group Icon


Профиль
Группа: Админ
Сообщений: 13285
Регистрация: 10.2.2004
Где: Германия г .Ганновер

Репутация: нет
Всего: 360



Цитата(Mal @ 17.12.2005, 21:20)
sergej.z а просто использовать зипование на уровне сервера через mod_deflate не пробовал?

Втом то и прикол, что так работает, но разве имеет смысл постоянно зипповать не меняющиеся файлы заного?


--------------------
PM WWW IM ICQ Skype GTalk Jabber AOL YIM MSN   Вверх
Mal Hack
Дата 18.12.2005, 21:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 8
Всего: 261



Цитата(sergej @ 18.12.2005, 21:14)
Втом то и прикол, что так работает, но разве имеет смысл постоянно зипповать не меняющиеся файлы заного?

А разве он будет его каждый раз зиповать, и не кэширровать (уже клиент)
PM ICQ   Вверх
sergejzr
Дата 18.12.2005, 21:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Un salsero
Group Icon


Профиль
Группа: Админ
Сообщений: 13285
Регистрация: 10.2.2004
Где: Германия г .Ганновер

Репутация: нет
Всего: 360



Здесь про сервер вопрос. Про клиента мы ничего не знаем, нам и неинтересно. Ктото кэширует кто-то нет. Любое сжатие такого файла чаще одного раза не оптимально.


--------------------
PM WWW IM ICQ Skype GTalk Jabber AOL YIM MSN   Вверх
Mal Hack
Дата 18.12.2005, 22:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 8
Всего: 261



Проще забить на тех, кто не понимает гзип и всегда отдавать сжатый.
PM ICQ   Вверх
sergejzr
Дата 19.12.2005, 00:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Un salsero
Group Icon


Профиль
Группа: Админ
Сообщений: 13285
Регистрация: 10.2.2004
Где: Германия г .Ганновер

Репутация: нет
Всего: 360



Но ведь это не должно быть сложным. гзиповать строку и отдать или зачитать из файла и отдать..


--------------------
PM WWW IM ICQ Skype GTalk Jabber AOL YIM MSN   Вверх
Mal Hack
Дата 19.12.2005, 02:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 8
Всего: 261



sergej.z а я тут подумал. А что если один раз пропустить файлик через буферизацию и ob_gzhandler, а затем просто добавлять его к выводу через туже буферизацию?
PM ICQ   Вверх
sergejzr
Дата 19.12.2005, 02:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Un salsero
Group Icon


Профиль
Группа: Админ
Сообщений: 13285
Регистрация: 10.2.2004
Где: Германия г .Ганновер

Репутация: нет
Всего: 360



Хмм.. я незнаком с буфферизацией к сож.. как это? Где можно почитать?
Вот кстати Гирдер ссылку дал по теме http://cssing.org.ua/2005/04/07/gzipping-your-css/
Вприн7ципе так я уже делал давно. Но это сжатие "onthefly"


--------------------
PM WWW IM ICQ Skype GTalk Jabber AOL YIM MSN   Вверх
Mal Hack
Дата 19.12.2005, 20:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 8
Всего: 261



PM ICQ   Вверх
Wowa
Дата 28.12.2005, 14:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
Group Icon


Профиль
Группа: Админ
Сообщений: 15017
Регистрация: 14.9.2000
Где: Винград

Репутация: нет
Всего: 290



sergej.z получилось что-нибудь?
PM WWW   Вверх
sergejzr
Дата 28.12.2005, 14:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Un salsero
Group Icon


Профиль
Группа: Админ
Сообщений: 13285
Регистрация: 10.2.2004
Где: Германия г .Ганновер

Репутация: нет
Всего: 360



Надо ещё разобраться - времени нет. Может кто попробует?


--------------------
PM WWW IM ICQ Skype GTalk Jabber AOL YIM MSN   Вверх
wsr
Дата 8.1.2006, 01:07 (ссылка)  | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Fuzzy Logic
*


Профиль
Группа: Участник
Сообщений: 142
Регистрация: 3.7.2005

Репутация: нет
Всего: 2



sergej.z. Делать за тебя сдесь никто ничего не будет! Тебя только направят на правильный путь! И если где баги... помогут!

Есть другой вариант!
Создать так сказать дополнительное кеширование!
Т.е. по URI данным узнаем уникальное имя файла! смотрим дату его последней модификации!
Если прошло не так много времени, то выводим инфру из файла, не гоняя скрипт!
А если время кеширования прошло, то пишем данные в файл и выводим их пользователю!
Так получим минимум для генерации странички!

Удачи!
Добавлено @ 01:08
При этом как раз используем ob_start('gz_handler')
--------------------
 ICQ : 918-318Сайт : Lock-Team 
PM MAIL WWW ICQ   Вверх
Greendrake
Дата 28.9.2006, 09:37 (ссылка) |    (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 364
Регистрация: 14.7.2005

Репутация: 1
Всего: 6



Вроде сделал.

gz.php:
Код

<?

include('../inc/config.php');
$file = dirname(__FILE__).'/'.(isset($_GET['f'])?$_GET['f']:'');
if (!isset($_GET['f']) || empty($_GET['f']) || !file_exists($file)){
  header("HTTP/1.1 404 Not Found");
  exit;
};
header('Content-Type: '.mime_content_type($file)); 
if (OUT_ZIP == 1 && strpos($_SERVER['HTTP_ACCEPT_ENCODING'],'gzip') !== false) {
  $zFile = ROOT.'/ref/temp/'.md5_file($file);
  if (!file_exists($zFile)){
    $zFileHandler = fopen($zFile,"w");
    fwrite($zFileHandler,gzencode(file_get_contents($file),9));
    fclose($fp);
  };
  $file = $zFile;
  header('Content-Encoding: gzip');
};
header('Content-Length: '.filesize($file));
header('Connection: close');
readfile($file);

?>


.htaccess:
Код

RewriteEngine on
RewriteRule ^gz_(.+)$ gz.php?f=$1


Так, если хотим экономить трафик и быстрее загружать, вместо привычного common.js запрашиваем gz_common.js. Скрипт проверит, нет ли во временной папке файла с именем, соответствующим md5('common.js'). Если нету, он его там создаст (запишет туда сжатый common.js). Ну и отдаёт его, соответственно, со всеми заголовками. Если сжатие отключено, или браузер не понимает сжатый контент — на нет и суда нет, отдаём common.js как есть.
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса

Внимание: данный раздел предназначен для решения сложных, нестандартных задач.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Для профи | Следующая тема »


 




[ Время генерации скрипта: 0.1114 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.