Apakah pandangan di-cache melalui mekanisme cache inti atau haruskah saya mengatur cache secara langsung di setiap tampilan?

23

Saya melihat ada pengaturan cache di setiap tampilan saya. Apakah saya perlu mengatur ini atau apakah mekanisme caching inti di / admin / config / development / performance secara otomatis melakukan hal ini dan "pengaturan tambahan" ini dalam pandangan adalah jika saya ingin mengganti perilaku caching default dari inti drupal?

masukkan deskripsi gambar di sini

Nigel Waters
sumber
Saya ingin tahu tentang pertanyaan persis ini. Apakah pengaturan cache spesifik Views mengesampingkan pengaturan cache kinerja Drupal Core? Logikanya, saya akan berpikir mereka akan menjadi seperti itu, tetapi itu tidak selalu dapat diasumsikan.
David Csonka
Saya memulai hadiah untuk ini, karena saya benar-benar ingin memahami ini lebih baik.
David Csonka

Jawaban:

38

APA: Caching kinerja inti menyimpan dan melayani seluruh halaman yang dirender dengan id cache URL. Caching tampilan melampaui ini hanya untuk cache output tampilan.

MENGAPA: Ini bagus untuk pengguna yang masuk; blok lain pada halaman mungkin lebih dinamis tetapi tampilan tidak harus menjalankan kueri setiap kali untuk setiap pengguna ... hanya pengguna sesekali yang menghasilkan cache halaman setelah masa cache habis.

PENGATURAN: Mengizinkan "hasil yang dirender" menjadi lebih segar daripada kueri berguna untuk hal-hal seperti menandai konten sebagai baru, jika tidak, sesuaikan saja.

GAMBAR BESAR: Drupal menyajikan laman secara dinamis, menggunakan server untuk membuat laman dalam PHP dan mengakses basis data (atau cache dalam memori). Ini memungkinkan fitur-fitur hebat dan kecepatan editor konten ... tetapi tradeoffnya perlu memahami caching dan melakukannya dengan benar.

MODUL!

Ada juga modul Cache Konten Konten yang indah yang membersihkan cache tampilan pada pengeditan konten. Jika Anda ingin melangkah lebih jauh, Anda mungkin ingin memeriksa Tindakan Cache juga, saya akan merekomendasikan Aturan untuk menyempurnakan ini.

Selain itu, Blockcache Alter memungkinkan Anda untuk mengatur "per peran", halaman, pengguna, dll. Opsi caching untuk setiap blok di situs Anda.

Anda juga dapat menambahkan Manajer halaman dan Panel . Ini memungkinkan Anda untuk melakukan hal-hal menarik seperti mengatur cache "per pengguna", "per peran", atau sejumlah konfigurasi lain yang sangat berguna. Padahal saya pribadi menghindari panel.

DOKUMENTASI: Untuk caching dan kinerja secara umum periksa halaman Drupal.org .

doublejosh
sumber
Jawaban ini sangat bagus. Terpilih. Saya menambahkan bagian pada manajer Halaman dan Panel, dan sekarang jawabannya sebagian besar sudah lengkap.
Letharion
Apakah Kinerja Inti "Pemblokiran caching" perlu diaktifkan agar caching khusus Tampilan berfungsi?
David Csonka
Terima kasih telah menambahkan sedikit tentang Page manager / Panel - karena setelah menambahkan hadiah untuk ini saya menyadari saya juga ingin tahu tentang caching Mini-panel. Saya bertanya-tanya apakah Kinerja Inti "Block caching" menimpa atau harus diaktifkan agar Mini-Panel "Simple caching" menjadi efektif.
David Csonka
1
Memblokir caching memang akan melakukan cache output blok terlepas dari pengaturan caching tampilan Anda ... sama seperti cache halaman. Jika Anda memiliki masa cache halaman yang keluar selama 12 jam, cache tampilan tidak menjadi masalah karena halaman-halaman itu tidak dirender lagi, mereka hanya dilayani dari cache.
doublejosh
1
Sebaliknya, jika saya mengaktifkan caching Blok Core, Drupal akan memberlakukan kondisi caching yang sama pada semua blok saya di seluruh situs saya, kan? Karena Core Drupal Block Caching mengambil prioritas tinggi di atas pengaturan caching Block Views? Itu sepertinya hanya skenario yang bagus jika Anda tidak memiliki konten yang perlu disegarkan secara konsisten.
David Csonka
4

Tampilan menggunakan API cache Drupal tetapi menciptakan cache sendiri yang tidak terkait dengan cache Drupal halaman / blok normal.

Tampilan cache definisi tampilan itu sendiri bersama dengan tampilan yang diberikan itu sendiri. Tampilan yang diberikan dapat di-cache dalam dua cara, baik hasil permintaan atau HTML sebenarnya dari tampilan. Biasanya Anda ingin men-cache HTML yang dihasilkan karena ini adalah kinerja yang paling efektif. Dalam beberapa kasus di mana Anda ingin mengubah output berdasarkan pada pengguna yang login, caching kueri juga bisa sangat efektif.

Tabel Views digunakan untuk menyimpan cache adalah:

  • cache_views
  • cache_views_data
googletorp
sumber
Jadi, dapatkah saya menonaktifkan pengaturan caching Blok Inti Drupal di admin / config / development / performance, tetapi aktifkan cache tampilan blok tampilan spesifik secara individual, dan masihkah cache blok Views itu berfungsi dengan baik?
David Csonka
1
@ Davidvidson Ya Anda bisa melakukannya. Caching blok akan lebih efektif daripada caching view, tetapi hanya dengan selisih kecil.
googletorp
Ahh, itu baik untuk diketahui. Tapi, hanya dengan menggunakan pengaturan caching Views akan memberi saya kontrol yang lebih tepat tentang bagaimana cache Views di-cache, kan? Jika saya menggunakan Core Block Caching sebagai gantinya, itu pada dasarnya memaksakan satu set pengaturan caching pada setiap blok di situs saya? Benar?
David Csonka
1
Caching tampilan (blok atau halaman) memberi Anda kendali atas caching dari set daftar hasil. Block caching adalah tentang output blok penuh. Ya caching blok inti adalah pengaturan di seluruh situs tetapi Anda dapat menggunakan Block Cache Alter untuk mengubahnya dengan sangat terperinci per blok.
doublejosh
3
@doublejosh Di Drupal 7 Anda dapat menentukan cara kerja cache blok, situs-lebar, per peran, per halaman, pengguna halaman adalah opsi yang saya percaya. Karena ini caching di level yang lebih tinggi, itu lebih efektif kinerja.
googletorp
3

Ada modul menarik yang sekarang tersedia disebut bully cache tampilan yang secara otomatis cache semua tampilan (hasil permintaan dan output), kecuali untuk tampilan dengan formulir terbuka. Modul ini juga memungkinkan Anda untuk mengecualikan tampilan dari caching secara manual. Ini memungkinkan untuk mengatur caching untuk semua tampilan (kecuali yang dikecualikan) dari titik pusat.

Dave Bruns
sumber
2

Drupal 7 menyediakan caching halaman namun caching halaman hanya berfungsi untuk pengguna anonim dan tidak men-cache view

Namun caching tampilan berfungsi untuk pengguna anonim dan masuk

Guy Schneerson
sumber