Ускорение Drupal. Кеширование страниц.

Обзор существующих решений.

Вот что я нарыл в интернете. Особое веимание стоит обратить на модуль, Boost. Очень сильный прирост, скорости, для Drupal. Но у сервера, должен быть включен mod_rew.

В друпале основной эффект кеширования Boost - посещения незарегистрированных посетителей. Кеш хранится в базе данных, но в результате кеширования значительно упрощаются запросы к базе и снижается их число. Также облегчить нагрузку на shared-хостинге можно с помощью модуля статического кеширования - он генерирует html-страницы, которые выдаются вебсервером вообще в обход движка. Минус - некоторая потеря динамичности, страница не будет обновлена, пока не истечёт время её жизни в кеше. Но этот модуль сделан недавно и пока плохо протестирован.

Все понимают, что кеш имеет смысл только тогда, когда материал на странице (сайте) не меняется. Но для статичного сайта кеш обычно и не применяют, а вот для динамичного очень хочется, чтобы не было тормозов - и посещаемость больше, и изменений больше...

Есть модуль Boost, но он даст ускорение только для анонимных пользователей, но не для тех, кто представился системе... А ведь хочется именно для активных увеличить скорость - именно им она нужна.

Есть модуль Block Cache - он кеширует блоки. То, что нужно! Его можно настроить и он будет сохранять в кеше не всю страницу, а блоки! Но проблема в том, что и блоки меняются довольно часто. Например, "Новое на форуме" или "Сейчас на сайте"...

Таким образом выиграш не большой.

Есть ещё модуль Advanced cache - он с помощью патчей расширяет функциональность кеша в ядре Друпал, но я его не проверял... Со слов автора кеширует и ноды, и комментарии и термины словарей.

И ещё модуль кеширования: Memcache API and Integration. Это API для использования Memcached и библиотеки PECL Memcache в Drupal. Не пробовал.

Что может мешать кешированию?

  • Капча. Для каждой формы (включая форму комментария) формируется новая капча. Таким образом страницы с капчей не кешируются. Остаётся вынести форму комментария на отдельную страницу, а на странице документа выдавать только ссылку, но это не всегда удобно для пользователей...
  • Собственно динамический контент (блоки справа или слева, блок ссылок для ноды - разный для разных ролей)
  • Комментарии. Статья может оставаться неизменной, а добавляются только комментарии. Получается, что кеш нужно обновлять каждый раз, когда добавился комментарий. Также должен обновиться и тизер - в нём есть указание общего количества комментариев и новых комментариев.

Решение

Пару лет назад я встретил такое решение (попробую найти ссылку...). Муж сделал для своей жены такой сервис, чтобы она могла оставлять комментарии на любой странице сайта (им нужно было по работе). Это было реализовано так: в каждую страницу вставлялся код на JS из двух строк, который вызывал скрипт на другом сервере (там собственно и хранились комментарии). Скрипт вставлял в тело страницы комментарии, оформлял их и выдавал форму для добавления новых. Удобно! Сейчас, насколько я знаю, в этот проект какая-то крупная компания вложила миллионы...

Но вот о чём я подумал: в их реализации комментарии не меняют текст страницы - он статичный, а комментарии добавляются динамически в момент просмотра страницы.

Таким образом, можно кешировать страницу с некоторыми вызовами JS-скриптов, которые соберут в браузере пользователя уникальную страницу! Лучше всего это сделать на AJAX.

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

Проблемы с поисковиками быть не должно, если обеспечить 2 версии: с JS (AJAX) и без оного. Поисковики как и текстовые браузеры получать версию без JS.

Что может выдаваться через AJAX?

  • Блок ссылок для ноды (документа)
  • Комментарии
  • Форма добавления комментария с капчей
  • Динамические блоки
  • и другие...

А теперь вопрос!

Если всё так хорошо, то почему никто так не сделал? Вероятно есть что-то чего я не учёл. Подскажите!

Отправить новый комментарий

Содержимое этого поля хранится скрыто и не будет показываться публично.
  • Допустимые HTML-теги
  • Автоматический перевод строки.
  • You may link to webpages through the weblinks registry
  • Potentially problem-causing HTML tags are filtered.
  • Адреса страниц и электронной почты автоматически преобразовываются в ссылки.

Дополнительная информация о настройках форматирования

КАПЧА
Этот вопрос задается для того, чтобы выяснить, являетесь ли Вы человеком или представляете из себя автоматическую спам-рассылку.
2 + 13 =
Решите эту простую математическую задачу и введите результат. То есть для 1+3, введите 4.