Ввиду отсутствия русскоязычной флудильни на этом форуме, предлагаю таковую организовать.
Оптимально было-бы прикрепить ее. Ну и соответственно флудить
Собственно, ввиду моего некоторовременного отсутствия в зоне доступа yii, интернета и прочих высокотехнологичных технологий кто-нибудь может в 2-х словах сказать что в мире yii нового произошло?
и скажу. делов то. с одной стороны фреймворки призваны упростоить логику веб приложения и облегчить его разработку. но с другой появляются “побочные” эффекты. я использую Yii с посторонним шабонизатором. он полностью отделяет html от скриптов. но доло вот в чем. что бы теперь ускорить приложение нужен механизм кеширования. поставил eAccelerator. следовательно появляются трудозатраты на продумывание и организацию политики кэширования.
но все же дивная штуковина. можно закешировать ажно цельную страничкку. а текущий вопрос такой. а почему бы не кешировать сжатые странички (gzip), 1 раз сжал (да и кэш-память экономится) и потом выплевывать их из кеша. кто наведет на дельную мыслю как это грамотно организовать?
а для браузеров не поддерживающих Gzip? отдавать не сжатую, но закешированную?
т.е. система превращается в: храним кешированные, храним сжатые кешированные, ни кеша ни сжатия, а браузер+кеш разбирается что отдать в том или ином случае? мысль интересная.
тут только вопрос - а сайт совсем статический? может проще кешироваь страницы и прочее на стороне клиента?
а для браузеров не поддерживающих Gzip? отдавать не сжатую, но закешированную?
Это не мое:
Quote
Тесты под Konqueror показали, что этот браузер не понимает архивированных файлов (CSS и JavaScript), поэтому чтобы уберечь десятую долю процента посетителей от сердечного приступа (когда они увидят сайт без соответствующих стилей), стоит добавить его в этот набор правил. Аналогично и «старым» браузерам (которые явно указывают, что не понимают архивов) отдается неархивированное содержание.
<IfModule mod_rewrite.c>
RewriteEngine On
перенаправляем Konquerorи «старые браузеры»
RewriteCond %{HTTP:Accept-encoding} !gzip [OR]
RewriteCond %{HTTP_USER_AGENT} Konqueror
RewriteRule ^(.*).(css|js)$ $1.nogzip.$2 [QSA,L]
</IfModule>
Вся вышеуказанная конструкция «обернута» условием наличия на сервере подключенного mod_rewrite. Если он отсутствует, то это сразу станет видно на заявленных браузерах (перестанут отображаться стили и отрабатывать скрипты). Иначе Apache просто не сможет запуститься, т. к. RewriteEngine не будет объявлен.
Дополнительно к заявленной логике необходимо выставить ряд заголовков для отдаваемых файлов. В частности, Vary и Cache-control касаются локальных проксирующих серверов, которые не должны кэшировать эти файлы, а пропускать их дальше к пользователю, не обрезая при этом заголовок User-Agent (иначе наш сервер никак не узнает, можно ли отдавать архивированную копию файла или нет).
<IfModule mod_headers.c>
Header append Vary User-Agent
выставляем для всех css/js файлов Content-Encoding
<FilesMatch .*.(js|css)$>
Header set Content-Encoding: gzip
Header set Cache-control: private
</FilesMatch>
сбрасываем Content-Encoding в том случае, если отдаем не архив
<FilesMatch .*.nogzip.(js|css)$>
Header unset Content-Encoding
</FilesMatch>
</IfModule>
В итоге для всех файлов, которые мы отдаем как архивы, дополнительно объявляется Content-Encoding, а для их неархивированных копий этот заголовок сбрасывается. Чем и достигается полная работоспособность данного решения.
Не совсем "ни о чем", но новый топик создавать лень…
В поисках вариантов оптимизации приложения наткнулся на небольшую статью, немного упаминувшую zend framework. Может кто-нибудь из вас копался в нем или даже использовал. Объясните мне, чем этот фреймворк так замечателен (потому что увидев размер полного архива, 40 метров, я даже качать расхотел…)
Хорош тем, что очень быстро развивается. Хорош самым большим коммунити. Хорош тем, что разрабатывается через TDD. В наличии очень большое количество готовых объектов для работы с сервисами Google, Yahoo и т.д. Хорош компонентом Zend_Lucene_Search. Но Yii все равно лучше, особенно с связке с частью модулей Zend.
Zend разрабатывают почти те же люди, кто разрабатывает PHP (точнее сказать так: в команде разработки Zend Framework очень много контрибуторов ядра PHP) насколько мне известно.
Это тоже MVC фреймворк. Такой вес у него благодаря огромному количеству классов (работа с PDF, RSS, GBase и многое-многое другое) и покрытию тестами всего кода.
Я тоже некоторые части Zend'а использую вкупе с Yii, ибо Yii дает легкость восприятия, а Zend - уже готовый функционал работы со многими обыденными вещами.