文章彙整

Magento2 直接把Block轉換以Ajax方式渲染,迴避Full Page Cache問題

Astral WebBy Astral Web 2 months agoNo Comments
首頁  /  Magento  /  Magento2 開源版  /  Magento2 直接把Block轉換以Ajax方式渲染,迴避Full Page Cache問題

在Magento2大部分的頁面都有Full Page Cache,舉凡像是prodcut、category、cms頁都有使用,讓使用者在下次近入頁面時間提升,但是這對於說想在頁面上想根據不同使用者所呈現不同內容來說是非常惱人的,雖然可以使用cacheable=”false”來避免但是這樣便會完全失去Full Page Cache功能,於是剩下的辦法便是使用AJAX拿回沒有Cache的資料進行渲染,但是對於每次都寫一隻AJAX與API的方式來說並不是怎麼的有效率,這邊將提供一個簡單的方法將你的Block轉換為上述方式,只需一個簡單的參數,省下更多的時間。

範例程式碼:

只要加上 $this->_isScopePrivate = true

<?php
namespace AstralWeb\Test\Block;

class Test extends \Magento\Framework\View\Element\Template
{
   public function __construct(
       \Magento\Framework\View\Element\Template\Context $context,
       array $data = []
   ) {
       parent::__construct($context, $data);
       $this->_isScopePrivate = true;
   }
}

可以使用檢視原始碼查看你會發現

<!-- BLOCK astralweb_test_index >
你的內容
<!-- /BLOCK astralweb_test_index -->

如果有興趣是如何實現的,可以在Magento\PageCache\Observer\ProcessLayoutRenderElement找到

 

是不是很簡單呢~只需一個簡單的參數完成一堆惱人的開發,避開煩人的Full Page Cache,省下更多的開發時間。
想知道更多Magento相關實用知識,請記得訂閱我們的電子報,以及追蹤歐斯瑞的臉書粉絲團IG,就能收到第一手的最新資訊喔!有任何問題,歡迎隨時與我們聯繫

 000

歐斯瑞

歐斯瑞 - 一個對網路世界充滿熱情的團隊

歐斯瑞提供免費電商知識,並協助各大類型之企業 電商諮詢建置MagentoShopify 相關的電商專案。

立即聯繫我們

推薦文章

Categories:
  Magento2 開源版MagentoMagento2 商業版後端開發網站技術與設計

留下回應

你的電子郵件地址不會被公開.