Подтвердить что ты не робот

В чем разница между консервативным кешированием и прогрессивным кешированием в joomla 2.5?

В Global Config в joomla есть 2 кэширования - это консервативный и прогрессивный, в чем разница?

4b9b3361

Ответ 1

Консервативное кэширование - это стандартный тип кэширования. Вот как это работает:

  • Посетитель посещает страницу вашего сайта.

  • Joomla проверяет, существует ли в своей папке кеширования версия с истекшим сроком действия.

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

Вышеприведенный сценарий типичен и как большинство разработчиков реализуют кэширование.

Прогрессивное кэширование работает следующим образом:

  • Посетитель посещает страницу вашего сайта.

  • Joomla проверяет, существует ли кешированная версия этой страницы для этого посетителя и ее еще не истек.

  • Если эта кешированная страница существует, то она будет передана посетителю, иначе Joomla создаст кэшированную страницу для этого конкретного посетителя, а затем подаст ее ему.

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

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

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

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

Извлечен из здесь.

Ответ 2

Для Уникальный кеш на посетителя

  • Консервативный кеш показывает всем посетителям вашего сайта тот же самый точный кешированный контент.

  • Прогрессивное кэширование, однако кэширует содержимое для каждого пользователя уникально.

От ссылки Предоставлено комментарием @Tornado

Ответ 3

Прогрессивное кэширование работает так же, как консервативное кэширование с той разницей, что буферы обновляются постепенно.

Если вы посмотрите на функцию рендеринга в JApplicationCMS (где установлено прогрессивное кэширование), вы обнаружите, что она не применима к зарегистрированным пользователям. https://github.com/joomla/joomla-cms/blob/staging/libraries/cms/application/cms.php

if ($this->isSite() && $this->get('caching') && $this->get('caching', 2) == 2 && !JFactory::getUser()->get('id'))
    {
        $caching = true;
    }

Кроме того, если вы сбросите идентификатор кеша для одной и той же страницы в браузерах или ips, вы получите одинаковый идентификатор кэша.

Типичная работа прогрессивного кэширования происходит в JCache getWorkarounds и setWorkarounds. Однако будьте осторожны, cbuffers могут получить громоздкие большие времена, вызывая проблемы.