Belirli bloklar için önbelleği devre dışı bırak


9

Sayfaların, Görünümlerden oluşturulduğunu bilerek her sayfa yenilemesinde güncellenmesi gereken belirli bir bloklar hariç, anonim kullanıcılar için Drupal 8 önbellekleme mekanizmasından yararlanmaya devam etmesine izin vermek istiyorum.

Teknik olarak mümkün mü? Nasıl?


MPD'nin belirttiği gibi, maksimum yaş ayarını kullanın. Ayrıca bunu blok düzenleme formunda UI üzerinden de yapabilirsiniz.

Ben de bu sorunu var - bu Drupal otomatik olarak ilgilenmez sinir bozucu. Önbelleğe alma iyidir, ancak Drupal'ın dinamik web siteleri için olması gerekiyor ...
James

Yanıtlar:


1

Bu görünümler bloğu ne gösteriyor?

D8, bir şey değişirse bloğu otomatik olarak geçersiz kılacak önbellek etiketlerine ve bağlamlarına sahiptir.

Düğüm listeniz varsa, her düğüm eklendiğinde veya güncellendiğinde, bu blok güncellenir, ancak o zamana kadar önbelleğe alınan sürüm kullanılır. Hangi her sayfada yeniden oluşturmak daha iyidir.

Ayrıca sayfa önbelleği ile çalışır, bu sayfalar da otomatik olarak güncellenir.

Birçok, birçok şey , herhangi bir manuel konfigürasyona gerek kalmadan kutudan çıkarılırken çalışır .

Düzenle (yoruma yanıt veriyor):

Rastgele sıralama eklentisi ile rastgele? Bu, bloğu otomatik olarak önbelleğe alınamaz olarak işaretlemelidir. Ancak bu sayfa önbellek modülünü etkilemez. Artık yeni bir smartcache / dinamik sayfa önbellek modülü var, ancak sadece bir sonraki beta (veya RC!) Sürümünde olacak. Bu, sonunda sayfanın geri kalanının önbelleğe alınmasına ve bu parçanın oluşturulmasına izin verecektir.

Ancak böyle bir durum muhtemelen en iyi bazı javascript kullanılarak gerçekleştirilir. Yalnızca birkaç düğüm varsa hepsini varsayılan olarak gizleyebilir ve rastgele birini görünür hale getirebilirsiniz. Ya da rastgele bir reklam döndüren javascriptli bir URL isteyin veya her birinin bir reklam döndürdüğü rastgele bir N URL'yi daha iyi ziyaret edin (örneğin, URL'lerin bir listesini döndürerek ve ardından bunlardan birini seçerek. .


Görünümler, reklam blokunu değiştirmek için rastgele bir düğüm döndürür.
Amin

Temiz çözüm için bir sonraki sürümü bekleyeceğim :)
Amine

Evet, rastgele Görünümler Rasgele Sıralama eklentisinden. Kabul ediyorum, varlıkları bir listeye koyan bir javascript blok içeriği oluşturmak ve daha sonra bunlardan birini seçmek ve ajax almak için bazı rastgele veya dairesel işlevli tarayıcı katmanına karar vermek mümkün. Ancak, bazı sayfalarda böyle birden fazla blok olacak ve bir sunucu tarafı çözümü en uygun olacaktır.
Amin

10

Bu özel bir bloksa, Önbellek API'sını kullanabilir ve önbellek maksimum yaşını 0 olarak ayarlayabilirsiniz;

$build = [
 // ...
 '#cache' => [
   'max-age' => 0,
 ],
];

Varolan bir bloksa, bunu oluşturma dizisine eklemek için değiştirebilirsiniz.


Soruda açıklandığı gibi, bloğum bir Views bloğudur. Ben php / modül katmanına müdahale etmek çok karmaşık olduğunu düşünüyorum.
Amin

1
Ne yazık ki, bu zaten çalışmıyor (denedi). Sayfa pagecache'den teslim ediliyor ve eski bloğu içeriyor gibi görünüyor. Ama hala araştırıyorum.
Rainer Feike
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.