คู่มือการใช้งาน CodeIgniter เวอร์ชั่น 1.7.2


การเก็บหน้าเว็บไซต์เอาไว้ในหน่วยความจำ (Web Page Caching)

CodeIgniter ยอมให้คุณเก็บหน้าต่างๆของคุณไว้เพื่อที่จะทำให้เกิดประสิทธิภาพสูงสุด

ถึงแม้ว่า CodeIgniter ค่อนข้างเร็ว แต่จำนวนข่าวสารที่ไม่อยู่นิ่งที่แสดงในหน้าต่างๆจะทำให้ส่งผลกับการใช้ทรัพยากรเซิร์ฟเวอร์ , ความจำ , และกระบวนการดำเนินการให้เป็นประโยชน์ ซึ่งมีผลกับความเร็วในการโหลดหน้าเว็บของคุณ ในการทำการเก็บข้อมูลหน้าเว็บไว้ในหน่วยความจำ มันจะถูกบันทึกเอาไว้เมื่อมันอยู่ในขั้นตอนที่แสดงผลสมบูรณ์ คุณสามารถทำให้เกิดประสิทธิภาพที่ใกล้เคียงกับหน้าเว็บแบบคงที่ (static web pages)

การเก็บทำงานอย่างไร?

การเก็บข้อมูลในหน่วยความจำ(Caching) สามารถเปิดได้แบบในแต่ละหน้าได้ และคุณสามารถตั้งความยาวของเวลาที่หน้านั้นจะคงอยู่จนกว่าจะถูกกระตุ้นความจำ (refresh) เมื่อหน้าถูกโหลดสำหรับครั้งแรก ไฟล์ที่เก็บจะถูกเขียนอยู่ในโฟลเดอร์ system/cache ลำดับถัดมาเมื่อหน้าถูกโหลดไฟล์ที่เก็บจะรับและส่งคำร้องไปยังบราวเซอร์ของผู้ใช้ ถ้ามันหมดอายุมันจะถูกลบและถูกกระตุ้นความจำก่อนที่จะส่งกลับไปยังบราวเซอร์

ข้อสังเกตุ: The Benchmark tag จะไม่ถูกเก็บดังนั้นคุณยังสามารถดูความเร็วในการโหลดเมื่อเมื่อคุณเปิดใช้การเก็บข้อมูลไว้ในหน่วยความจำ (caching)

เปิดใช้งานการเก็บ

การเปิดใช้งานคุณสมบัติการเก็บ ให้เราใส่คำสั่งนี้ลงไปในส่วนไหนก็ได้ของฟังก์ชันของตัวควบคุม (controller)

$this->output->cache(n);

โดย n คือตัวเลขจำนวน นาที ที่คุณต้องการเก็บหน้าไว้ระหว่างการถูกกระตุ้นความจำ

ในคำสั่งด้านบนสามารถใช้ได้ทุกที่ในฟังก์ชัน มันไม่ได้มีผลโดยลำดับที่ถูกใช้ ดังนั้นให้วางไว้ในที่ที่ๆมันมีเหตุผลที่สุดกับคุณ เมื่อคำสั่งนี้ถูกใช้ หน้าต่างๆของคุณจะเริ่มถูกเก็บ

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

ข้อสังเกตุ: ก่อนที่ไฟล์ที่เก็บจะสามารถถูกเขียนคุณจะต้องตั้งค่าการยินยอมการใช้ไฟล์ (file permission) บนโฟลเดอร์ system/cache ให้ถูกเขียนได้

การลบไฟล์ที่ถูกเก็บ

ถ้าคุณไม่ต้องการที่จะเก็บไฟล์คุณสามารถลบคำสั่งการเก็บและมันจะไม่ถูกกระตุ้นหน่วยความจำเมื่อมันหมดอายุ ข้อสังเกตุ: เมื่อลบคำสั่งมันจะไม่ลบไฟล์ที่ถูกเก็บทันที มันจะหมดอายุตามปกติ ถ้าคุณต้องการที่จะเอามันออกเร็วขึ้นคุณต้องไปลบเองในโฟลเดอร์ cache