![]() |
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]() ![]() ![]() |
|
sergejzr |
|
|||
![]() Un salsero ![]() Профиль Группа: Админ Сообщений: 13285 Регистрация: 10.2.2004 Где: Германия г .Ганновер Репутация: нет Всего: 360 |
Привет, гуру ПХП. Проблема - не проблема, идея - не идея, короче мысль...
Если гзиппить страничку и посадть правильный header, то браузер после скачивания сам распакует её и покажет. Теперь предположим у меня есть увесистый яваскрипт. Гзиппить каждый раз при отдаче - мало смысла. Бесполезная нагрузка на сервер просто. Мысль такая - хранить сжатый файл параллельно и просто отдавать его, если браузер понимает гзип, иначе отдавать внутренности несжатого файла. Это всё дожно работать для клиента как обыкновенный скрипт. В том числе возвращать Not modified, когда надо итд. Я кое чего пробовал, но с файлом не получилось... Вопрос - может кто занимался этим. Скрипты редко меняются, гзиппить легко, а таким способом можно съэкономить кучу траффика. |
|||
|
||||
CyClon |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 838 Регистрация: 3.12.2005 Репутация: нет Всего: 4 |
Мне бы еще почитать что такое gzip то есть зачем оно и толку... Ну и способы применения...
|
|||
|
||||
Mal Hack |
|
|||
![]() Мудрый... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 9926 Регистрация: 15.2.2004 Репутация: 8 Всего: 261 |
sergej.z а просто использовать зипование на уровне сервера через mod_deflate не пробовал?
|
|||
|
||||
sergejzr |
|
|||
![]() Un salsero ![]() Профиль Группа: Админ Сообщений: 13285 Регистрация: 10.2.2004 Где: Германия г .Ганновер Репутация: нет Всего: 360 |
Втом то и прикол, что так работает, но разве имеет смысл постоянно зипповать не меняющиеся файлы заного? |
|||
|
||||
Mal Hack |
|
|||
![]() Мудрый... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 9926 Регистрация: 15.2.2004 Репутация: 8 Всего: 261 |
А разве он будет его каждый раз зиповать, и не кэширровать (уже клиент) |
|||
|
||||
sergejzr |
|
|||
![]() Un salsero ![]() Профиль Группа: Админ Сообщений: 13285 Регистрация: 10.2.2004 Где: Германия г .Ганновер Репутация: нет Всего: 360 |
Здесь про сервер вопрос. Про клиента мы ничего не знаем, нам и неинтересно. Ктото кэширует кто-то нет. Любое сжатие такого файла чаще одного раза не оптимально.
|
|||
|
||||
Mal Hack |
|
|||
![]() Мудрый... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 9926 Регистрация: 15.2.2004 Репутация: 8 Всего: 261 |
Проще забить на тех, кто не понимает гзип и всегда отдавать сжатый.
|
|||
|
||||
sergejzr |
|
|||
![]() Un salsero ![]() Профиль Группа: Админ Сообщений: 13285 Регистрация: 10.2.2004 Где: Германия г .Ганновер Репутация: нет Всего: 360 |
Но ведь это не должно быть сложным. гзиповать строку и отдать или зачитать из файла и отдать..
|
|||
|
||||
Mal Hack |
|
|||
![]() Мудрый... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 9926 Регистрация: 15.2.2004 Репутация: 8 Всего: 261 |
sergej.z а я тут подумал. А что если один раз пропустить файлик через буферизацию и ob_gzhandler, а затем просто добавлять его к выводу через туже буферизацию?
|
|||
|
||||
sergejzr |
|
|||
![]() Un salsero ![]() Профиль Группа: Админ Сообщений: 13285 Регистрация: 10.2.2004 Где: Германия г .Ганновер Репутация: нет Всего: 360 |
Хмм.. я незнаком с буфферизацией к сож.. как это? Где можно почитать?
Вот кстати Гирдер ссылку дал по теме http://cssing.org.ua/2005/04/07/gzipping-your-css/ Вприн7ципе так я уже делал давно. Но это сжатие "onthefly" |
|||
|
||||
Mal Hack |
|
|||
![]() Мудрый... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 9926 Регистрация: 15.2.2004 Репутация: 8 Всего: 261 |
||||
|
||||
Wowa |
|
|||
Эксперт ![]() Профиль Группа: Админ Сообщений: 15017 Регистрация: 14.9.2000 Где: Винград Репутация: нет Всего: 290 |
sergej.z получилось что-нибудь?
|
|||
|
||||
sergejzr |
|
|||
![]() Un salsero ![]() Профиль Группа: Админ Сообщений: 13285 Регистрация: 10.2.2004 Где: Германия г .Ганновер Репутация: нет Всего: 360 |
Надо ещё разобраться - времени нет. Может кто попробует?
|
|||
|
||||
wsr |
|
|||
![]() Fuzzy Logic ![]() Профиль Группа: Участник Сообщений: 142 Регистрация: 3.7.2005 Репутация: нет Всего: 2 |
sergej.z. Делать за тебя сдесь никто ничего не будет! Тебя только направят на правильный путь! И если где баги... помогут!
Есть другой вариант! Создать так сказать дополнительное кеширование! Т.е. по URI данным узнаем уникальное имя файла! смотрим дату его последней модификации! Если прошло не так много времени, то выводим инфру из файла, не гоняя скрипт! А если время кеширования прошло, то пишем данные в файл и выводим их пользователю! Так получим минимум для генерации странички! Удачи! Добавлено @ 01:08 При этом как раз используем ob_start('gz_handler') --------------------
ICQ : 918-318Сайт : Lock-Team |
|||
|
||||
Greendrake |
|
||||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 364 Регистрация: 14.7.2005 Репутация: 1 Всего: 6 |
Вроде сделал.
gz.php:
.htaccess:
Так, если хотим экономить трафик и быстрее загружать, вместо привычного common.js запрашиваем gz_common.js. Скрипт проверит, нет ли во временной папке файла с именем, соответствующим md5('common.js'). Если нету, он его там создаст (запишет туда сжатый common.js). Ну и отдаёт его, соответственно, со всеми заголовками. Если сжатие отключено, или браузер не понимает сжатый контент — на нет и суда нет, отдаём common.js как есть. |
||||
|
|||||
Greendrake |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 364 Регистрация: 14.7.2005 Репутация: 1 Всего: 6 |
В процессе тестирования более усовершенстваванной версии скрипта — отдающей заголовки Last-Modified и ETag и проверяющей в запросе заголовки If-None-Match, If-Modified-Since, и отдающей при необходимости 304 Not Modified, столкнулся с проблемой в IE: когда сервер отдаёт сжатый файл, при последующих запросах IE не добавляет ни заголовок If-None-Match, ни If-Modified-Since. Соответственно, на повторные запросы IE, сервер всегда отдаёт тело файла, даже если файл не изменился — т. е. всё время гонится ненужный траф. Если сжатие отключить — проблема исчезает, IE начинает вставлять в повторные запросы заголовок If-None-Match. В FF всё работает отлично и в случае сжатия и в случае без.
Пробовал персонально для IE кидать Cache-Control: must-revalidate, pre-check=0, post-check=0, max-age=0 — не помогает ![]() --------------------------------------------------------------- Нашёл пару статей на эту тему: одна, вторая. Это баг IE. Вывод: для IE не стоит сжимать файлы, вставляемые в каждую веб-страницу на сайте (css, js etc.). Ибо он будет их скачивать при каждом запросе, хоть и сжатые. Уж лучше пусть скачает несжатые, но один раз. Исключение — сайты на AJAX, где не происходит то и дело обновлений страниц. Это сообщение отредактировал(а) Greendrake - 4.10.2006, 21:28 |
|||
|
||||
sunkitten |
|
||||
Новичок Профиль Группа: Участник Сообщений: 21 Регистрация: 8.4.2008 Репутация: нет Всего: нет |
Greendrake, будьте добры показать Ваш усовершенствованный скрипт.
Прошу прощения за реанимацию темы, но дело в том, что без сжатия в наше время увесистых css файлов и JS-фреймворков никуда. Я до селе использовал механизм, взятый не помню откуда, с какого-то забугорного блога (см. листинг ниже). Но он почему то отказывается работать на моем новом хостинге (на старом стоял PHP-4 а на новом PHP-5). Даже тестируя на "Денвере" с 4-м PHP всё хорошо работает. Посмотрите этот код, возможно увидите причину, почему он не работает. файл .htaccess
И собственно файл compress_js_css.php:
Очень нуждаюсь в решении данной задачи. Благодарен за комментарии. |
||||
|
|||||
![]() ![]() ![]() |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | PHP: Для профи | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |