มุมมองถูกแคชผ่านกลไกการแคชหลักหรือฉันควรตั้งค่าการแคชโดยตรงในแต่ละมุมมองหรือไม่?


23

ฉันเห็นว่ามีการตั้งค่าแคชในแต่ละมุมมองของฉัน ฉันต้องตั้งค่าเหล่านี้หรือไม่หรือกลไกการแคชหลักใน / admin / config / development / performance ทำสิ่งนี้โดยอัตโนมัติและ "การตั้งค่าพิเศษ" เหล่านี้ในมุมมองคือถ้าฉันต้องการแทนที่พฤติกรรมแคชเริ่มต้นของแกน drupal?

ป้อนคำอธิบายรูปภาพที่นี่


ฉันอยากรู้เกี่ยวกับคำถามที่แน่นอนนี้ การตั้งค่าแคชเฉพาะของ Views จะแทนที่การตั้งค่าแคชประสิทธิภาพของ Drupal Core หรือไม่ ฉันคิดว่ามันคงเป็นกรณี แต่ไม่สามารถคาดเดาได้
David Csonka

ฉันเริ่มได้รับรางวัลสำหรับสิ่งนี้เพราะฉันอยากจะเข้าใจสิ่งนี้มากขึ้น
David Csonka

คำตอบ:


38

WHAT:การแคชประสิทธิภาพหลักจัดเก็บและแสดงหน้าทั้งหมดที่แสดงผลด้วยรหัสแคชของ URL การดูแคชนั้นเกินกว่านี้เพื่อแคชเฉพาะเอาต์พุตมุมมอง

ทำไม:มันยอดเยี่ยมสำหรับผู้ใช้ที่เข้าสู่ระบบ; บล็อกอื่น ๆ ในหน้าอาจมีไดนามิกมากกว่า แต่มุมมองไม่จำเป็นต้องเรียกใช้แบบสอบถามทุกครั้งสำหรับผู้ใช้ทุกคน ... เพียงแค่ผู้ใช้เป็นครั้งคราวที่สร้างแคชหน้าเมื่อหมดอายุการใช้งานแคช

การตั้งค่า: การอนุญาตให้ "การแสดงผลที่ออกมา" นั้นจะดีกว่าการสืบค้นจะมีประโยชน์สำหรับสิ่งต่าง ๆ เช่นการทำเครื่องหมายเนื้อหาว่าเป็นสิ่งใหม่

ภาพใหญ่: Drupal ให้บริการหน้าเว็บแบบไดนามิกโดยใช้เซิร์ฟเวอร์เพื่อสร้างหน้าใน PHP และเข้าถึงฐานข้อมูล (หรือแคชในหน่วยความจำ) สิ่งนี้จะช่วยให้คุณสมบัติที่ยอดเยี่ยมและความเร็วในการแก้ไขเนื้อหา ... แต่การแลกเปลี่ยนจำเป็นต้องเข้าใจแคชและทำมันให้ถูกต้อง

โมดูล!

นอกจากนี้ยังมีโมดูลแคชเนื้อหาของมุมมองที่น่ารักซึ่งล้างแคชมุมมองในการแก้ไขเนื้อหา หากคุณต้องการที่จะไปต่อคุณอาจต้องการตรวจสอบการกระทำของแคชเช่นกันฉันขอแนะนำกฎเพื่อปรับนี้

นอกจากนี้Blockcache Alter ยังช่วยให้คุณสามารถตั้งค่า "ต่อบทบาท", หน้า, ผู้ใช้ ฯลฯ ตัวเลือกการแคชสำหรับแต่ละบล็อกในเว็บไซต์ของคุณ

นอกจากนี้คุณยังสามารถเพิ่มหน้าผู้จัดการและแผง สิ่งนี้ช่วยให้คุณทำสิ่งที่น่าสนใจเช่นการตั้งค่าแคช "ต่อผู้ใช้", "ต่อบทบาท" หรือการกำหนดค่าที่มีประโยชน์อื่น ๆ อีกมากมาย แม้ว่าฉันจะหลีกเลี่ยงการติดตั้งส่วนตัว

เอกสารอ้างอิง:สำหรับแคชและประสิทธิภาพในการตรวจสอบโดยทั่วไปออกหน้า Drupal.org


คำตอบนี้ดีจริงๆ Up-ได้รับการโหวต ฉันได้เพิ่มหัวข้อในตัวจัดการหน้าและแผงและตอนนี้คำตอบอาจจะสมบูรณ์
Letharion

จำเป็นต้องเปิดใช้งานสมรรถนะหลักของ "การบล็อกแคช" เพื่อให้การแคชเฉพาะของ Views เข้าใช้งานได้หรือไม่
David Csonka

ขอบคุณที่เพิ่มบิตเกี่ยวกับตัวจัดการหน้า / แผง - เพราะหลังจากเพิ่มความโปรดปรานสำหรับสิ่งนี้แล้วฉันก็รู้ว่าฉันยังอยากรู้เกี่ยวกับการแคชแผงขนาดเล็ก ฉันสงสัยว่า Core Performance "Block caching" แทนที่หรือถูกเปิดใช้งานเพื่อให้ Mini-Panels "Simple caching" มีประสิทธิภาพหรือไม่
David Csonka

1
การบล็อกแคชจะแคชเอาต์พุตบล็อกโดยไม่คำนึงถึงการตั้งค่าการแคชมุมมองของคุณ ... เช่นเดียวกับแคชหน้า หากคุณมีหน้าแคชที่ลงชื่อออกจากระบบเป็นเวลา 12 ชั่วโมงแคชมุมมองจะไม่สำคัญเนื่องจากหน้าเหล่านั้นไม่ได้ถูกแสดงผลอีกครั้งนั่นเป็นเพียงการแสดงผลจากแคช
doublejosh

1
ในทางกลับกันถ้าฉันเปิดใช้งานการแคชแกนบล็อก Drupal จะกำหนดเงื่อนไขการแคชเดียวกันในบล็อกทั้งหมดของฉันตลอดทั้งไซต์ใช่ไหม เนื่องจาก Core Drupal Block Caching มีความสำคัญสูงกว่าการตั้งค่าการแคช View Block? ดูเหมือนว่าจะเป็นเพียงสถานการณ์ที่ดีหากคุณไม่มีเนื้อหาที่อาจจำเป็นต้องรีเฟรชบนพื้นฐานที่สอดคล้องกัน
David Csonka

4

Views ใช้ Drupal cache APIs แต่สร้าง cache ของตัวเองที่ไม่เกี่ยวข้องกับ Drupal page / block cache ปกติ

มุมมองแคชนิยามของมุมมองพร้อมกับมุมมองที่แสดงผล มุมมองที่แสดงผลสามารถถูกแคชได้สองวิธีคือผลลัพธ์แบบสอบถามหรือ HTML จริงของมุมมอง โดยปกติแล้วคุณต้องการแคช HTML ที่เอาต์พุตเนื่องจากสิ่งนี้มีประสิทธิภาพสูงสุด ในบางกรณีที่คุณต้องการเปลี่ยนผลลัพธ์ตามผู้ใช้ที่เข้าสู่ระบบการแคชแบบสอบถามจะมีประสิทธิภาพเช่นกัน

มุมมองตารางที่ใช้สำหรับเก็บแคชคือ:

  • cache_views
  • cache_views_data

ดังนั้นฉันสามารถปิดใช้งานการตั้งค่าการแคช Drupal Core Block ได้ที่ admin / config / development / performance แต่เปิดใช้งานแคชบล็อกการแสดงผล Views เฉพาะบางรายการและยังมีแคชบล็อก Views เหล่านั้นทำงานอย่างถูกต้องหรือไม่
David Csonka

1
@DavidCsonka ใช่คุณสามารถทำได้ การบล็อกบล็อกจะมีประสิทธิภาพมากกว่าการแคชมุมมอง แต่จะมีเพียงเล็กน้อยเท่านั้น
googletorp

อ่าเป็นเรื่องดีที่รู้ แต่การใช้เฉพาะการตั้งค่าการเข้าชมจะช่วยให้ฉันควบคุมได้แม่นยำยิ่งขึ้นว่าการบล็อกของ Views นั้นถูกต้องอย่างไร หากฉันใช้ Core Block Caching แทนโดยทั่วไปจะกำหนดค่าการตั้งค่าการแคชหนึ่งชุดในทุก ๆ บล็อกในไซต์ของฉัน แก้ไข?
David Csonka

1
การดูแคช (บล็อกหรือหน้า) ให้คุณควบคุมการแคชของชุดรายการผลลัพธ์ การบล็อกแคชนั้นเกี่ยวกับผลลัพธ์เต็มบล็อก ใช่การแคชบล็อกหลักเป็นการตั้งค่าทั่วทั้งไซต์ แต่คุณสามารถใช้ Block Cache Alter เพื่อเปลี่ยนบล็อกที่ละเอียดอย่างมากต่อบล็อก
doublejosh

3
@doublejosh ใน Drupal 7 คุณสามารถกำหนดว่าแคชบล็อกควรทำงานอย่างไรทั้งไซต์ต่อบทบาทต่อหน้าผู้ใช้เพจเป็นตัวเลือกที่ฉันเชื่อ เนื่องจากแคชในระดับที่สูงขึ้นจึงมีประสิทธิภาพมากกว่า
googletorp

3

ขณะนี้มีโมดูลที่น่าสนใจเรียกว่ามุมมองแคชรังแกที่แคชมุมมองทั้งหมดโดยอัตโนมัติ (ผลแบบสอบถามและผลลัพธ์) ยกเว้นมุมมองที่มีรูปแบบที่เปิดเผย โมดูลนี้ยังช่วยให้คุณสามารถแยกมุมมองออกจากแคชได้ด้วยตนเอง สิ่งนี้ทำให้สามารถตั้งค่าการแคชสำหรับมุมมองทั้งหมด (ยกเว้นที่แยกออก) จากจุดศูนย์กลาง


2

Drupal 7 ให้การแคชเพจ แต่การแคชเพจใช้ได้กับผู้ใช้ที่ไม่ระบุตัวตนเท่านั้นและไม่สามารถดูแคชได้

การดูแคชนั้นใช้ได้กับทั้งผู้ใช้ที่ไม่ระบุชื่อและที่ลงชื่อเข้าใช้

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.