форум общения русскоязычных пользователей CMS Текстпаттерн
Вы не зашли.
Страничка плагина aks_cache
Ускоряем отдачу страниц и снижаем нагрузку на сервер.
При выборочном кешировании можно получить довольно неплохой результат.
Дока с парой картинок на тему кешируем Textpattern :-)
Отредактированно makss (16-01-2016 20:42:58)
Неактивен
До оптимизации:
<!-- Runtime: 0,1418 --> <!-- Query time: 0,100583 --> <!-- Queries: 73 --> <!-- Memory: 921Kb, end of textpattern() -->
После применения плагина (почти статическую правую колонку сайта):
<!-- Runtime: 0,0360 --> <!-- Query time: 0,006141 --> <!-- Queries: 26 --> <!-- Memory: 959Kb, end of textpattern() -->
P.S. После недолгого практического тестирования замечательного плагина вывел, что следует кэшировать только те элементы, которые делают запросы к базе данных. К таким элементам относятся: облако тегов, все выводы списка статей, списки категорий. Остальные элементы кэшировать бессмысленно. Список секций (навигация сайта) у меня эффекта от кэширования не получила.
Отредактированно itshaman (14-04-2010 07:27:29)
Неактивен
Стоит ли кэшировать мелкие изображения шаблона? Я вот закэшировал шапку сайта, но эффекта это не дало, хотя там статика.
Неактивен
makss написал:
Страничка плагина aks_cache
Ускоряем отдачу страниц и снижаем нагрузку на сервер.
При выборочном кешировании можно получить довольно неплохой результат.
Дока с парой картинок на тему кешируем Textpattern :-)
Могу сказать однозначно, что плагин aks_cache + rss_unlimited_categories = отличный результат. Сокращение запросов на некоторых сайтов 111 -> 12, так что автору, однозначно, респект.
Неактивен
Хороший плагин.
Осталось сделать возможность сброса кеша при обновлении сайта. Есть поле в "lastmod" в таблице txp_prefs - в нем, если не ошибаюсь, хранится последнее обновление сайта.
Если эту функцию дописать, то можно будет весь сайт в кеш кидать и расслабиться А может и в файлы?
Неактивен
the_ghost написал:
Осталось сделать возможность сброса кеша при обновлении сайта. Есть поле в "lastmod" в таблице txp_prefs - в нем, если не ошибаюсь, хранится последнее обновление сайта.
спс, за "lastmod", подумаю.
как бы не получилось возни с часовыми поясами... на своих серверах я всегда ставлю время в GMT, а тут возможно придется думать о поясе.
Если эту функцию дописать, то можно будет весь сайт в кеш кидать и расслабиться А может и в файлы?
мне как-раз больше нравится частичное кеширование, т.к. при желании, есть возможность отдавать разный контент(банеры/рекламу) в зависимости от ip или от языковых настроек браузера.
полное кеширование не так интересно.
да и лучше тогда уж делать полное кеширование не в виде плагина, а еще до запуска Textpattern-a, т.е. контент из кеша будет отдаваться без запуска Txp.
скорее всего уже есть готовое решение для этого, т.к. идея лежит на поверхности и не привязана к конкретному движку.
можно кеш делать и на файлах, делал частичное кеширование на файлах для самописной CMS, работает нормально, ток файликов много становится.
Неактивен
itshaman написал:
Стоит ли кэшировать мелкие изображения шаблона? Я вот закэшировал шапку сайта, но эффекта это не дало, хотя там статика.
мелкую статику лучше не кешировать, т.к. выигрыш будет минимальный. список секций - обычно секций мало, следовательно выигрыш будет очень мал. хотя у меня есть один сайтик с 100+ секциями
еще одно не явное применение плагина - поисковики не любят когда используется вывод случайного списка статей, т.е. при каждом заходе поисковик видит абсолютно другие ссылки, например:
<txp:article .... limit="15" sort="rand()" />
если эту конструкцию завернуть в aks_cache и поставить время кеша несколько дней, то получатся "постояные" ссылки, которые будут меняться только раз в несколько дней.
Неактивен
makss написал:
еще одно не явное применение плагина - поисковики не любят когда используется вывод случайного списка статей, т.е. при каждом заходе поисковик видит абсолютно другие ссылки, например:
Код:
<txp:article .... limit="15" sort="rand()" />если эту конструкцию завернуть в aks_cache и поставить время кеша несколько дней, то получатся "постояные" ссылки, которые будут меняться только раз в несколько дней.
Вот за такой совет - спасибо. Достойно внимания - сделаю для такого блока время жизни в неделю
А кеш на файлах, если я правильно помню теорию, работает быстрее кеша из базы. Но это уже мы гоняемся за единицами процентов выгоды.
Неактивен
the_ghost написал:
А кеш на файлах, если я правильно помню теорию, работает быстрее кеша из базы. Но это уже мы гоняемся за единицами процентов выгоды.
Почему за процентами. Все зависит от проекта. Я думаю есть выгода для больших проектов посещаемость от 10К.
Неактивен
the_ghost написал:
А кеш на файлах, если я правильно помню теорию, работает быстрее кеша из базы. Но это уже мы гоняемся за единицами процентов выгоды.
может быть и быстрее и медленнее, все зависит от настроек sql сервера и файловой системы. и там и там может быть настроено свое кеширование и инфа отдаваться из оперативки.
Неактивен
the_ghost написал:
Осталось сделать возможность сброса кеша при обновлении сайта. Есть поле в "lastmod" в таблице txp_prefs - в нем, если не ошибаюсь, хранится последнее обновление сайта.
готово
aks_cache v0.2.3
* Добавлена опция сброса кеша при обновлении сайта.
* Добавлен атрибут для игнорирования опции "сброса кеша при обновлении сайта"
Отредактированно makss (16-01-2016 20:44:06)
Неактивен
the_ghost написал:
makss написал:
еще одно не явное применение плагина - поисковики не любят когда используется вывод случайного списка статей, т.е. при каждом заходе поисковик видит абсолютно другие ссылки, например:
Код:
<txp:article .... limit="15" sort="rand()" />если эту конструкцию завернуть в aks_cache и поставить время кеша несколько дней, то получатся "постояные" ссылки, которые будут меняться только раз в несколько дней.
Вот за такой совет - спасибо. Достойно внимания - сделаю для такого блока время жизни в неделю
для таких блоков желательно указать атрибут noreset="1", чтобы блоки не сбрасывались при обновлении сайта.
Неактивен
Было бы здорово иметь опцию, при которой кеширование отключаетеся, например, если ты залогинен в админку. Т.е. если я поставил галочку "disable cache for admin" и зашел на сайт, то мне будет выдаваться генерированный контент.
Неактивен
the_ghost написал:
Было бы здорово иметь опцию, при которой кеширование отключаетеся, например, если ты залогинен в админку. Т.е. если я поставил галочку "disable cache for admin" и зашел на сайт, то мне будет выдаваться генерированный контент.
пробуйте aks_cache v0.2.4
Отредактированно makss (16-01-2016 20:44:36)
Неактивен
Потихоньку опробываем.
Неактивен
обновил статсу по своему сайтику
Отредактированно makss (16-01-2016 20:45:11)
Неактивен
Небольшое обновление aks_cache v0.2.5
Добавлен атрибут "block"
Отредактированно makss (16-01-2016 20:45:41)
Неактивен
А в чем отличие "block" от прошлого атрибута "id"?
Неактивен
the_ghost написал:
А в чем отличие "block" от прошлого атрибута "id"?
иногда нужно кешировать какую-то единственную(или не совсем единсвенную) статью, чтобы не выдумывать ей уникальный id, можно поле id вообще не указывать, тогда поле id по умолчанию будет равно REQUEST_URI этой страницы. кстати, это довольно удобно.
все хорошо, но если кому-то захочется таким образом закешировать больше одного блока на странице, то будет ой...
поэтому и добавил дополнительный параметр block. пример использования
в общем случае, пользоваться атрибутом block не нужно.
Неактивен
Понятно - это для разделения нескольких блоков, в случае, если используется REQUEST_URI в качестве id?
Если так, то я у себя решил этот вопрос еще прежде так:
<txp:variable name="uri" value='<txp:php>echo $_SERVER["REQUEST_URI"];</txp:php>' /> <!-- <txp:variable name="uri" /> --> <txp:aks_cache id='<txp:variable name="uri" />_meta' hour="168"> <txp:output_form form="meta_description_keywords" /> </txp:aks_cache>
Неактивен
the_ghost написал:
Понятно - это для разделения нескольких блоков, в случае, если используется REQUEST_URI в качестве id?
да, совершенно верно.
the_ghost написал:
Если так, то я у себя решил этот вопрос еще прежде так:
Код:
<txp:variable name="uri" value='<txp:php>echo $_SERVER["REQUEST_URI"];</txp:php>' /> <!-- <txp:variable name="uri" /> --> <txp:aks_cache id='<txp:variable name="uri" />_meta' hour="168"> <txp:output_form form="meta_description_keywords" /> </txp:aks_cache>
ага, все правильно
Неактивен
А как побороть zem_contact_reborn? Можно ли (имеет ли смысл) встроить в плагин проверку на наличие вызова плагина zcr, чтобы блок с ним не кешировался?
Неактивен
the_ghost написал:
А как побороть zem_contact_reborn? Можно ли (имеет ли смысл) встроить в плагин проверку на наличие вызова плагина zcr, чтобы блок с ним не кешировался?
проверки какого-то конкретного плагина точно не будет. да и не отследить его вызов, если используются несколько вложенных форм.
наверное, наиболее красивым решением будет добавление безатрибутного тега <txp:aks_cache_none /> внутрь блога <txp:aks_cache> .... </txp:aks_cache>. т.е. при наличии тега - блок не кешировать.
надо только название ему подобрать получше и покороче, в голове крутятся варианты:
aks_cache_none
aks_cache_no
aks_cache_deny
aks_cache_disable
aks_cache_off
Неактивен
Мне нравится aks_cache_disable и сама реализация того, про что я подумал.
Неактивен