Mengapa cache halaman penuh menonaktifkan cache blok?

13

Saya memiliki bagian statis yang disertakan pada setiap halaman (navigasi), tetapi butuh waktu lama untuk menghasilkan. Itu sebabnya saya telah menetapkan masa pakai cache dan kunci cache statis.

Berfungsi dengan baik, sampai FPC diaktifkan. Kemudian blok masih dihasilkan lagi untuk halaman yang baru dipanggil dan tidak disajikan dari cache blok.

Ada baris ini di Enterprise_PageCache_Model_Observer:

Mage::app()
    ->getCacheInstance()
    ->banUse(Mage_Core_Block_Abstract::CACHE_GROUP); // disable blocks cache

Apa alasannya? Masuk akal bagi saya untuk tetap men-cache blok tertentu, bahkan jika FPC aktif - karena jika tidak, generasi halaman yang tidak sepenuhnya dilayani dari cache akan diperlambat.

  1. Apa keputusan desain di balik itu?
  2. Apa solusi yang baik untuk hal itu?
  3. Apakah akan berbahaya jika saya hanya menghapus pelarangan cache blok ini?
Alex
sumber
tahu ini adalah pertanyaan lama, tetapi apakah Anda menemukan sesuatu tentang ini?
xelber

Jawaban:

1

Bug ini telah diperbaiki di Magento 1.14.2.0. (ref http://merch.docs.magento.com/ee/user_guide/magento/release-notes-ee-1.14.2.html di bawah Masalah yang Diketahui)

pengguna487772
sumber
2
Saya baru saja membahas ini pada 1.14.2.4. Saya bisa melihat logikanya telah berubah dari waktu ke waktu. Kode ini dikelilingi oleh if: if ($this->_processor->canProcessRequest($request) && ($request->isStraight() || $this->_processor->getRequestProcessor($request)) ) { Mage::app()->getCacheInstance()->banUse(Mage_Core_Block_Abstract::CACHE_GROUP); } tapi saya tidak dapat menemukan alasan mengapa Anda akan memblokir cache block. Bisakah Anda mencerahkan lebih banyak?
PanPipes
2

Untuk dapat menonaktifkan FPC untuk blok dinamis, misalnya, di checkout atau halaman keranjang. Tentang pertanyaan ke-3, menurut saya Anda sebaiknya tidak melakukan ini yang mungkin merusak proses FPC (jujur, untuk memberikan jawaban yang benar, kita harus memeriksa kode sumber juga).

Oğuz Çelikdemir
sumber
Apakah bagian pertamamu tentang pertanyaan pertamaku? Jika ya, mengapa cache blok perlu dinonaktifkan untuk menonaktifkan FPC di checkout atau halaman keranjang? Bahkan, blokir cache hanya dinonaktifkan jika seluruh halaman di-cache.
Alex
Saya baru saja memeriksa kode sumber yang mengendalikan cookie pengguna. Jika pengguna telah memblokir cookie, FPC memblokir cache. Fungsi _getCookie mengembalikan instance Enterprise_PageCache_Model_Cookie yang mengendalikan cookie pengguna.
Oğuz Çelikdemir
Apa hubungannya dengan cookie? Dan baris kode mana yang Anda bicarakan? bingung
Alex
Alex, malam ini aku akan mengecek lagi dan mengirimkanmu blok kode yang diperlukan.
Oğuz Çelikdemir