在当今的电子商务世界或任何以毫秒为单位的网站中,缓存都是非常重要的。您的网站速度越慢,它获得的转化就越少,因为现在每个人都很忙,他们没有时间和耐心来等待速度较慢的页面加载。
如果您拥有的数据始终是静态的,或者它很少变化,那么最好的方法是缓存该数据。
像在大多数现代Web应用程序中一样,我们具有缓存管理,类似地,我们也将其包含在magento中,您可以在其中将数据添加到缓存中并从缓存中访问它,而不必访问数据库。
此数据可以是您要缓存的页面上的任何内容。让我们看一些示例,这些示例可以帮助您了解Magento的世界中缓存的工作方式。
缓存你的块
protected function _construct()
{
$this->addData(array(
'cache_lifetime' => 3600,
'cache_tags' => array(Mage_Catalog_Model_Product::CACHE_TAG),
'cache_key' => $this->getProduct()->getId(),
));
}
您可以在任何所需的块中添加以上代码,这会将块的输出数据在产品缓存中缓存3600秒,即1个小时。
cache_lifetime –您可以指定秒数或false。如果设置为false,则缓存将永不过期。
cache_tags –缓存标签用于对缓存进行分组,这意味着可以同时清除或刷新同一缓存。在上面的示例中,我们使用产品缓存,这意味着一旦将任何产品保存在admin中,该缓存就会被删除。但是,如果要使其唯一,并且仅在特定产品保存在admin中时才清除缓存,则可以使用以下代码-:
protected function _construct()
{
$this->addData(array(
'cache_lifetime' => 3600,
'cache_tags' => array(Mage_Catalog_Model_Product::CACHE_TAG . '_' . $this->getProduct()->getId()),
'cache_key' => $this->getProduct()->getId(),
));
}
在上面的示例中,我们添加了$ this-> getProduct()-> getId()以及cache_tags和cache_key,这使得缓存的清除和输出是唯一的。仅当清除特定产品的缓存时,它才会清除缓存,并在前端为每个产品显示不同的输出。
cache_key –缓存键用于使每个产品的缓存唯一。在上述两个示例中,我们都将产品ID作为唯一键,这意味着对于每种产品,您具有不同版本的存储在缓存中。但是,如果您知道所有产品的块输出都是相同的,则根本不需要添加cache_key选项。请参见下面的示例-:
protected function _construct()
{
$this->addData(array(
'cache_lifetime' => 3600,
'cache_tags' => array(Mage_Catalog_Model_Product::CACHE_TAG . '_' . $this->getProduct()->getId()),
));
}
请注意,您需要在admin中的system-> cache management部分启用block html输出缓存,以使上述代码正常工作。