Görüşler çekirdek önbellek mekanizmalarından mı önbelleğe alınmış mı yoksa önbelleklemeyi her görünümde mi ayarlamalıyım?


23

Gördüğümlerin her birinde önbellek ayarları var. Bunları ayarlamam gerekiyor mu veya / admin / config / development / performance içindeki çekirdek önbellekleme mekanizmaları otomatik olarak bunu yapıyor mu ve görünümlerdeki bu "ekstra ayarlar", drupal çekirdeğin varsayılan önbelleğe alma davranışını geçersiz kılmak istersem?

görüntü tanımını buraya girin


Bu kesin soruyu merak ediyorum. Görünümlere özgü önbellek ayarları, Drupal Core performans önbellekleme ayarlarını geçersiz kılıyor mu? Mantıksal olarak, durumun böyle olacağını düşünürdüm, ama bu mutlaka kabul edilemez.
David Csonka

Bunun için bir ödül başlattım, çünkü bunu daha iyi anlamak istiyorum.
David Csonka

Yanıtlar:


38

NEDİR: Çekirdek performans önbelleğe alma işlemi, işlenen tüm sayfayı URL’nin bir önbellek kimliğiyle birlikte depolar ve sunar. Önbellekleme yalnızca görünüm çıktısını önbelleğe almak için bunun ötesine geçer.

NEDEN: Giriş yapan kullanıcılar için harika; sayfadaki diğer bloklar daha dinamik olabilir, ancak görünümün her kullanıcı için her seferinde bir sorgu çalıştırmasına gerek kalmaz ... yalnızca önbellek kullanım ömrü dolduğunda sayfa önbelleği oluşturan kullanıcı ara sıra geçer.

AYARLAR: "Oluşturulan çıktının" sorgudan daha taze olmasına izin vermek, içeriği yeni olarak işaretlemek gibi şeyler için yararlıdır, aksi takdirde sadece eşleştirin.

BÜYÜK RESİM: Drupal, PHP'de sayfa oluşturmak ve bir veritabanına (veya bellek içi önbelleğe) erişmek için bir sunucu kullanarak, sayfayı dinamik olarak sunar. Bu, müthiş özelliklere ve içerik düzenleyici hızına izin verir ... ancak takasın önbelleğe almayı anlama ve doğru şekilde yapma ihtiyacı var.

MODÜLLER!

Ayrıca , içerik düzenlemesindeki görünüm önbelleğini temizleyen hoş bir Görünüm İçerik Önbelleği modülü de vardır. Daha ileri gitmek istiyorsanız, Önbellek Eylemlerini de kontrol etmek isteyebilirsiniz , bunun için ince ayar yapmak için Kurallar önerilir .

Ek olarak, Blockcache Alter , sitenizdeki her blok için "rol başına", sayfa, kullanıcı, vb. Önbellekleme seçeneklerini ayarlamanıza olanak tanır.

Ayrıca Sayfa yöneticisi ve Paneller ekleyebilirsiniz . Bu, önbelleği "kullanıcı başına", "rol başına" veya başka bir çok yararlı yapılandırma gibi ayarlamak gibi ilginç şeyler yapmanızı sağlar. Ben şahsen panellerden uzak dursam da.

DOKÜMANTASYON: Genel olarak önbellekleme ve performans için Drupal.org sayfasını kontrol edin .


Bu cevap gerçekten çok iyi. Yukarı-oy kullandı. Sayfa yöneticisi ve Paneller üzerine bir bölüm ekledim ve şimdi cevap çoğunlukla tamamlanmış olabilir.
Letharion

Görünümlere özgü önbelleklemenin çalışması için Çekirdek Performansı "Blok önbelleğe alma" etkin olmalı mı?
David Csonka

Sayfa yöneticisi / Paneller hakkındaki parçayı eklediğiniz için teşekkür ederiz - çünkü bunun için ödül ekledikten sonra Mini panelleri önbelleğe almayı da merak ettim. Core-Performance "Block caching" in geçersiz kıldığını mı yoksa Mini Panellerin "Simple caching" in etkili olması için etkinleştirilmesinin gerekli olup olmadığını merak ediyordum.
David Csonka

1
Blok önbellekleme, görünüm önbelleğe alma ayarlarınızdan bağımsız olarak blok çıktısını önbelleğe alır ... sayfa önbelleği ile aynı. 12 saatlik oturumu kapatmış bir sayfa önbellek ömrünüz varsa, görünüm önbelleği önemli değildir, çünkü bu sayfalar tekrar oluşturulmaz, sadece önbellekten sunulurlar.
doublejosh

1
Tam tersi, Çekirdek Blok önbelleğe almayı etkinleştirirsem, Drupal sitemde tüm bloklarımda aynı önbellek koşullarını uygular, değil mi? Core Drupal Block Caching, Views Block önbellekleme ayarlarına göre daha yüksek önceliğe sahip olduğundan? Tutarlı bir şekilde yenilenmesi gerekebilecek içeriğiniz yoksa, yalnızca iyi bir senaryo gibi görünür.
David Csonka

4

Görünümler Drupal önbellek API'lerini kullanır, ancak normal Drupal sayfa / blok önbelleğiyle ilgili olmayan kendi önbelleğini oluşturur.

Görünümler, görünüm tanımını, oluşturulan görünümün kendisiyle birlikte önbelleğe alır. İşlenen görünüm, sorgu sonucu veya görünümün gerçek HTML'si olmak üzere iki şekilde önbelleğe alınabilir. Normalde çıktısı alınan HTML'yi önbelleğe almak istersiniz, çünkü bu en etkili performanstır. Çıktıyı giriş yapan kullanıcıya göre değiştirmek istediğiniz bazı durumlarda, sorgunun önbelleğe alınması da oldukça etkili olabilir.

Görünümler, önbelleği saklamak için kullandığı tablolardır:

  • cache_views
  • cache_views_data

Öyleyse, admin / config / development / performance adresindeki Drupal Core Block önbellekleme ayarını devre dışı bırakabilir miyim, ancak belirli Views display blok önbelleklerini ayrı ayrı etkinleştirebilirim ve yine de Views Block önbellekleri düzgün çalışıyor mu?
David Csonka

1
@DavidCsonka Evet bunu yapabilirsiniz. Bloğu önbelleğe almak, görünümü önbelleğe almaktan daha etkili olur, ancak yalnızca küçük bir farkla.
googletorp

Ahh, bunu bilmek güzel. Ancak, yalnızca Görünümler önbelleğe alma ayarlarının kullanılması, Görünümler bloğunun nasıl önbelleğe alındığı konusunda daha hassas bir kontrol sağlar, değil mi? Bunun yerine Çekirdek Blok Önbelleğe Alma özelliğini kullanırsam, temel olarak sitemdeki her blokta bir önbellek ayarları kümesi uygular? Doğru?
David Csonka

1
Önbelleğe alma (blok veya sayfa) görünümleri, sonuç listesinin önbelleğe alınması üzerinde kontrol sağlar. Blok önbelleklemesi tam blok çıktısı hakkındadır. Evet çekirdek blok önbellekleme, site çapında bir ayardır, ancak blok başına bunu çok ayrıntılı bir şekilde değiştirmek için Blok Önbellek Değiştirici'yi kullanabilirsiniz.
doublejosh

3
@doublejosh Drupal 7'de blok önbelleğin nasıl çalışması gerektiğini tanımlayabilirsiniz, site genelinde, rol başına, sayfa başına, sayfa kullanıcısı inandığım seçeneklerdir. Daha yüksek seviyede önbelleklendiğinden, daha etkili performans gösterir.
googletorp

3

Artık görüntülenen önbellek zorba adı verilen ve açıkta görünen formlara sahip görüntüler hariç tüm görünümleri (sorgu sonuçları ve çıktı) otomatik olarak önbelleğe alan ilginç bir modül var . Modül, görünümleri önbelleğe almanın el ile hariç tutmanıza da olanak sağlar. Bu, merkezi bir noktadan tüm görünümler için (hariç tutulanlar hariç) önbelleklemeyi mümkün kılar.


2

Drupal 7 sayfa önbellekleme sağlar, ancak sayfa önbellekleme yalnızca anonim kullanıcılar için işe yarar ve görünümleri önbelleğe almaz

Önbelleğe alma görünümleri ancak hem adsız hem de giriş yapmış kullanıcılar için işe yarar

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.