Полный кеш страницы, обновление блока - PullRequest
2 голосов
/ 02 марта 2012

Я хочу внедрить Full Page Cache, но в настоящее время у меня есть 1 проблема для решения.

Мы работаем с системой электронной коммерции, которая основана на библиотеках Zend и Varien: Magento E-commerce Community Edition.

Я могу кешировать вывод, единственная проблема в том, как справиться со следующей ситуацией:

Пользователь заходит на сайт, затем заходит в каталог / товар и добавляет какой-то товар в корзину,затем возвращается в каталог.

Проблема в том, что, когда он добавляет товар в корзину, появляются некоторые конкретные блоки, которые, возможно, потребуется обновить.Поэтому я могу отключить кэширование почтовых запросов, но как я могу обновить какой-то конкретный блок или как реализовать этот «заполнитель», который будет обновляться?Я полагаю, что могут быть некоторые «Лучшие практики» или Шаблоны для кэширования.

PS Для magento: пожалуйста, не напоминайте мне о выпуске Enterprise и платных модулях.

Ответы [ 4 ]

4 голосов
/ 02 марта 2012

Существует три способа повысить производительность с помощью Magento Community Edition:

1. Использовать лак

Varnish (https://www.varnish -cache.org /) называет себя «ускорителем веб-приложений» и является прозрачным обратным прокси. Если вы знаете Squid, то у вас есть смутное представление - Varnish похож на Squid, только умнее и быстрее. :)

Используя Varnish, вы можете реализовать свой собственный Full Site Cache, который, по моему опыту, может быть даже намного быстрее, чем Full Page Cache в Magento Enterprise Edition.

Однако Varnish не является стандартным инструментом, поэтому, если вы размещаете установку Magento в обычном пакете веб-пространства PHP, вы не сможете установить / использовать его. Для установки и использования Varnish вы должны иметь (root) доступ к вашей системе или провайдеру, который предлагает вам Varnish в качестве услуги. Есть несколько хостинг-провайдеров Magento, которые предлагают специальный хостинг Magento, включая такие услуги, как Varnish.

Сам Varnish кэширует все виды статических файлов и страниц, например целые страницы просмотра продукта. Поэтому, если вы начинаете использовать Varnish, вам нужно адаптировать свой Magento, то есть создать специальные модули, которые разделяют ваши страницы на статический и динамический контент.

Например: представление продукта представляет собой одну страницу с заполнителями для Dymaic частей / блоков, таких как виджет корзины. Статический контент (страница) будет доставлен Varnish, динамический контент будет загружен клиентом (браузером), выполняющим вызовы AJAX на ваш сервер приложений (Magento).

Таким образом, ваш сервер (ы) приложений будет вызываться только для этих динамических блоков и для входа в систему / регистрации клиента, и вы сможете сэкономить массу производительности.

Уже есть несколько модулей Magento для Varnish, например http://www.magentocommerce.com/magento-connect/pagecache-powered-by-varnish.html - просто Google для "Varnish Magento", вы найдете достаточно информации.

2. Создайте свою собственную систему кэширования

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

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

Глупо, но просто и отлично работает - до тех пор, пока у вас нет тысячи продуктов (сканирование займет слишком много времени).

3. Не используйте Magento

Просто шутка, ... :) Но да, Magento имеет тенденцию быть медленным.

Также очень полезно для оптимизации производительности Magento: Лучшая практика Magento по производительности и Scalibilty Whitepaper . Даже для Enterprise Edition некоторые советы также очень полезны для Commiunity Edition.

2 голосов
/ 30 марта 2012

Кэш полной страницы с открытым исходным кодом для magento

https://github.com/ezapps/Zoom-Magento-FPC

Работает очень быстро и бесплатно.В magento commerce у вас есть симуляционные расширения, которые берут 500 долларов за домен

0 голосов
/ 09 ноября 2012

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

0 голосов
/ 02 марта 2012

Я думаю, вам нужно указать идентификационный идентификатор, который изменится, когда клиент добавит товар в корзину.

    protected function _construct()
{
$this->addData(array(
'cache_lifetime' => 3600,
'cache_tags'     => array(Mage_Catalog_Model_Product::CACHE_TAG),
'cache_key'      => $this->getProduct()->getId(),
));
}

значение cache_key потребуется изменить, когда вы добавите товар.Вы можете попробовать это?

...