Перечитал уже порядочное количество тем на этом сайте про кеширование. И сложилось следующее представление о кешировании:
включенное нормальное кеширование на странице "производительность" сохраняет страницу целиком. Таким образом закешированная главная страница сайта, где много динам. блоков будет оставаться всегда неизменной, верно?
и в этом случае мне поможет только
CacheExclude
или
Формирование этих блоков через Javascript
Верно? А как быть с нагрузкой на сервер? Здесь помогут только штуки типа eAcelerator?
Комментарии
Быстро пошёл смореть исходники модуля Captcha
иду
Посмотрел:
там сделано так
<?php
global $conf;
$conf['cache'] = FALSE;
?>
Как я понял, это отключает кеширование страницы целиком. Правильно?
В АПИ для hook_block указан еще параметр 'cache', одно из возможных значений которого BLOCK_NO_CACHE. Он отключит кеширование только для блока?
RxB просьба не ругать, что я не могу попробовать прямо щас. Просто мне запретили свыше что-то делать с кешем вплоть до утра: ни отключать, ни очищать, т.к. нагрузка на сайт довольно большая сейчас.
Пока есть время, хочу подготовиться к завтрашнему утру. Если Вы поделитесь опытом буду очень благодарен.
Да
Да
Если это действительно высокая нагрузка, то ты кешированием только хуже можешь сделать, есть подшевный проект с ~100 000 просмотрами в сутки. Кеширование пришлось нафиг вырубать, только хуже было, намного хуже.
Огласи цифры нагрузки и железо на котором всё крутится
есть модуль block cache или как то так называется там для отдельных блоков кеша можно отключать
нагрузка ~10 000 посетителей в сутки
~70 000 просмотров
все анонимы, зарегистрированные только админы
по железу пока ничего не могу сказать, не я им занимаюсь
BLOCK_NO_CACHE влияет только тогда, когда отключен пункт "кеширование-нормальное" и включено кеширование блоков?
70 000 анонимов это не та посещаемость, когда надо думать о проблемах, буст и вперёт
И все-таки как-то странно работает страничное кеширование, когда включено "нормальное".
Вот есть у меня блок новости, в нем выводятся заголовки последних новостей(без всякого там js).
Если меняю title у одной из новостей, то даже без сброса кеша в этом блоке показывается измененный title. (сбрасывается кеш всей главной страницы)
Есть еще блок со случайным выводом. Вот он закешировался как полагается - всегда показывает старые значения.
Проверял под анонимом.
Нашел полезную тему на орге по теме динамических блоков для полностью кешированной страницы.
Т.о. есть следующие варианты:
- ajax (плюсы: один HTTP-запрос, даже для нескольких блоков, если вывод формировать одним скриптом, т.к. браузер кеширует первый, и другие уже не выполняет, минусы - если js отключен - то что будет выводиться - ... нужно придумывать)
- iframe(плюсы - не нужно заморачиваться за включенность js на стороне клиента, минусы - по запросу на каждый блок)
Ну и минусы обоих подходов - bootstrap при формировании содержимого блока.
Тем, кто захочет использовать вариант с ajax, обратите внимание на модули: ajax_load, ajaxblocks, ajaxify_regions.
RxB, раз уж ты обратил внимание на эту тему, то что думаешь насчет такой схемы: для каждого блока пишем примерно следующее:
<script>
...загрузка с помощью js
</script>
<noscript>
<iframe>
..вариант без js..
</iframe>
</noscript>
</div>
Уарабей, я тебе скажу что я даже код читать не буду, так как делать оптимизацию не зная что у тебя
под задницейчто за железо и какие возможности есть, по крайней мере тупо