Главная страница построена на динамических блоках => стандартное кеширование для нее нужно отключить?

Главные вкладки

Аватар пользователя warobushek warobushek 30 августа 2010 в 21:36

Перечитал уже порядочное количество тем на этом сайте про кеширование. И сложилось следующее представление о кешировании:
включенное нормальное кеширование на странице "производительность" сохраняет страницу целиком. Таким образом закешированная главная страница сайта, где много динам. блоков будет оставаться всегда неизменной, верно?
и в этом случае мне поможет только
CacheExclude
или
Формирование этих блоков через Javascript

Верно? А как быть с нагрузкой на сервер? Здесь помогут только штуки типа eAcelerator?

Комментарии

Аватар пользователя warobushek warobushek 30 августа 2010 в 22:12

Посмотрел:
там сделано так

<?php
  
global $conf;
  
$conf['cache'] = FALSE;
?>

Как я понял, это отключает кеширование страницы целиком. Правильно?

В АПИ для hook_block указан еще параметр 'cache', одно из возможных значений которого BLOCK_NO_CACHE. Он отключит кеширование только для блока?

RxB просьба не ругать, что я не могу попробовать прямо щас. Просто мне запретили свыше что-то делать с кешем вплоть до утра: ни отключать, ни очищать, т.к. нагрузка на сайт довольно большая сейчас.

Пока есть время, хочу подготовиться к завтрашнему утру. Если Вы поделитесь опытом буду очень благодарен.

Аватар пользователя Виктор Степаньков ака RxB Виктор Степаньк... 30 августа 2010 в 22:29

"warobushek" wrote:

Как я понял, это отключает кеширование страницы целиком. Правильно?

Да
"warobushek" wrote:
В АПИ для hook_block указан еще параметр 'cache', одно из возможных значений которого BLOCK_NO_CACHE. Он отключит кеширование только для блока?

Да

Если это действительно высокая нагрузка, то ты кешированием только хуже можешь сделать, есть подшевный проект с ~100 000 просмотрами в сутки. Кеширование пришлось нафиг вырубать, только хуже было, намного хуже.
Огласи цифры нагрузки и железо на котором всё крутится

Аватар пользователя warobushek warobushek 31 августа 2010 в 7:42

нагрузка ~10 000 посетителей в сутки
~70 000 просмотров
все анонимы, зарегистрированные только админы

по железу пока ничего не могу сказать, не я им занимаюсь
BLOCK_NO_CACHE влияет только тогда, когда отключен пункт "кеширование-нормальное" и включено кеширование блоков?

Аватар пользователя warobushek warobushek 3 сентября 2010 в 13:47

И все-таки как-то странно работает страничное кеширование, когда включено "нормальное".

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

Проверял под анонимом.

Аватар пользователя warobushek warobushek 4 сентября 2010 в 23:14

Нашел полезную тему на орге по теме динамических блоков для полностью кешированной страницы.
Т.о. есть следующие варианты:
- ajax (плюсы: один HTTP-запрос, даже для нескольких блоков, если вывод формировать одним скриптом, т.к. браузер кеширует первый, и другие уже не выполняет, минусы - если js отключен - то что будет выводиться - ... нужно придумывать)
- iframe(плюсы - не нужно заморачиваться за включенность js на стороне клиента, минусы - по запросу на каждый блок)
Ну и минусы обоих подходов - bootstrap при формировании содержимого блока.

Тем, кто захочет использовать вариант с ajax, обратите внимание на модули: ajax_load, ajaxblocks, ajaxify_regions.

RxB, раз уж ты обратил внимание на эту тему, то что думаешь насчет такой схемы: для каждого блока пишем примерно следующее:

<div id="block_a">
<script>
...загрузка с помощью js
</script>
<noscript>
  <iframe>
    ..вариант без js..
  </iframe>
</noscript>
</div>
Аватар пользователя Виктор Степаньков ака RxB Виктор Степаньк... 4 сентября 2010 в 23:26

"warobushek" wrote:
RxB, раз уж ты обратил внимание на эту тему, то что думаешь насчет такой схемы: для каждого блока пишем примерно следующее:

Уарабей, я тебе скажу что я даже код читать не буду, так как делать оптимизацию не зная что у тебя под задницей что за железо и какие возможности есть, по крайней мере тупо