×

คำเตือน

JFolder::create: Path not in open_basedir paths.

Caching หรือ แคชชิ่งคืออะไร พอจะอธิบายได้ว่ามันคือการทำงานของเว็บไซต์ของเราที่จะเอาข้อมูลหน้า หรือบางส่วนของหน้าที่เคยสร้างไว้ก่อนหน้านี้ ส่งให้ผู้ใช้แทนที่จะต้องทำการสร้างหน้านั้นๆ หรือบางส่วนของหน้านั้นใหม่ เนื่องจากการสร้างหน้าเว็บในแต่ละครั้งจะต้องมีการอ่านข้อมูลจากฐานข้อมูลหรือไฟล์ต่างๆ ทำให้ต้องใช้เวลาและทรัพยากรมากกว่าการอ่านจากแคชแล้วส่งให้ผู้ใช้เลย ดังนั้นการเปิดใช้งานแคชก็จะทำให้เว็บของเราทำงานได้เร็วขึ้น ซึ่งคุณสามารถตรวจสอบประสิทธิภาพของเว็บคุณได้จาก http://www.gtmetrix.com  ส่วนการใช้งานแคชบนจูมล่า เราก็ต้องทำความเข้าใจการทำงานของมันด้วยนะครับ โดยเฉพาะในตัวจูมล่าพระเอกของเราก็มีให้ตัวเลือกมากมายให้เราต้องกำหนด

สำหรับการกำหนดรูปแบบของแคชชิ่งจะมีสิ่งที่เราต้องกำหนดอยู่สองอย่างหลักๆ ครับ คือ

  1. เวลาของการแคชชิ่ง (Caching Time) เช่น 15 นาที ก็หมายความว่าเมื่่อทำการสร้างข้อมูลแล้วข้อมูลนี้จะถูกเก็บไว้ 15 นาทีเพื่อส่งให้ผู้ใช้ทุกๆ ครัั้งที่มีการเรียก เมื่อหมดเวลาก็จะทำการสร้างข้อมูลใหม่อีก การกำหนดเวลานานๆ ก็ทำให้เราใช้ทรัพยากรในการสร้างหน้าเว็บน้อยลง ผู้ใช้รู้สึกดีที่เว็บทำงานได้เร็ว แต่ข้อเสียก็มีคือหากระหว่างเวลาแคชชิ่งข้อมูลมีการเปลี่ยนแปลง ผู้ใช้ก็ยังไม่เห็นการเปลี่ยนแปลง ยกเว้นเราทำการเคลียร์แคชนั้นๆ ก่อน ในจูมล่าก็มีให้เราทำได้ครับ
  2. รูปแบบการจัดเก็บข้อมูลแคชชิ่ง (Cache Handler) การจัดเก็บข้อมูลของแคชชิ่งที่เป็นค่าเริ่มต้นของจูมล่าก็คือ ไฟล์ ส่วนตัวเลือกอื่นๆ จะขึ้นอยู่กับตัวโฮสต์ที่คุณใช้อยู่ ซึ่งจะอยู่ทีี่ตัว PHP modules ที่เปิดใช้งาน โดยตัวเลือกที่จูมล่ามีที่ดูจากโค้ดก็มี
    • APC Cache (apc)
    • CacheiLite
    • Eaccelerator
    • File เก็บไว้ในโฟลเดอร์ cache ของจูมล่าหรือตามที่เรากำหนดใน Global Config
    • Memchache 
    • Memchached ตัวนี้สามารถใช้งานบนเครื่องแยกออกไป
    • WinCache
    • XCache

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

ระดับของแคชชิ่งในจูมล่า

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

แคชชิ่งระดับหน้า (Page Caching)

  • การตั้งค่า : กำหนดโดยการตั้งค่าที่ปลํ๊กอินซึ่งจูมล่ามีให้แล้ว
  • ระดับ : ทั้งหน้า เฉพาะ Frontend  และสำหรับผู้ใช้ที่เป็น Guest หรือยังไม่ได้ล็อกอินเท่านั้น
  • เงื่่อนไข : ดูตาม URL สำหรับกรณีการเรียกแบบ GET เท่านั้น
  • ข้อกำหนดอื่นๆ : สามารถกำหนดให้ใช้ Browser Cache ได้ คือเก็บแคชไว้ที่เครื่่องผู้ใช้แทน

แคชชิ่งระดับวิวในคอมโพเนนท์

  • การตั้งค่า : กำหนดที่ Global Config -> System -> Cache Settings
  • ระดับ : แต่ละวิวของคอมโพเนนท์
  • เงื่อนไข : ตาม URL วิว และ พารามีเตอร์ต่างๆ ที่กำหนดในคอมโพเนนท์ได้เอง
  • ข้อกำหนดอื่นๆ : ในตัวคอมโพเนนท์ต้องมีการเพิ่มโค้ดให้รองรับการทำแคชชิ่ง ซึ่งโดยทั่วไปจะไม่มี ยกเว้นจากทีมจูมล่าเอง

แคชชิ่งระดับโมดูล

  • การตั้งค่า : กำหนดที่ Global Config -> System -> Cache Settings
  • ระดับ : แต่ละโมดูล สามารถแก้ไขได้ที่แต่ละโมดูล ในส่วน Advanced Parameters ว่าจะใช้ตาม Global หรือตั้งเวลาเองหรือ ไม่ทำแคชชิ่งเลย
  • เงื่อนไข : ไม่แน่ใจครับตรงนี้
  • ข้อกำหนดอื่นๆ : ในบางกรณีเราต้องยกเลิกการทำแคชชิ่งระดับโมดูล เพื่อหลีกเลี่ยงปัญหา หรือกรณีที่มีการอับเดตข้อมูลบ่อยๆ

การลบแคช

การลบแคชในจูมล่ามีสองแบบนะครับ คือลบหรือ Purge แคชที่หมดอายุไปแล้วเพื่อทำให้โฟลเดอร์หรือพื้นที่จัดเก็บข้อมูลว่าง และการเลือกลบแคชที่ยังไม่หมดเวลา เราสามารถเลือกลบเป็นตัวๆ ได้นะครับ ขั้นอยู่กับข้อมูลตอนนั้น สำหรับจูมล่าเวอร์ชั่นสามก็อยู่ที่เมนู System นะครับ ส่วนจูมล่า 2.5 ก็อยู่ที่เมนู Site -> Maintenance ครับ

การเปิดการใช้งานแคชช่วยทำให้เว็บโหลดเร็วขึ้นครับ แต่อาจจะมีปัญหาจุกจิกตามมาบ้าง ก็ต้องแก้ไขกันไปครับ หากว่าการเปิดแคชชิ่งให้ประโยชน์กับคุณ แต่การทำให้เว็บโหลดเร็วขึ้นไม่ได้ขึ้นอยู่กับแคชชิ่งอย่างเดียวนะครับ การกำหนดค่าบางอย่างที่เครื่องแม่ข่ายหรือโฮสต์ก็ช่วยได้มากๆ ลองดูที่ตัว www.gtmetrix.com แนะนำก็ได้ครับ แล้วลองทำตามดู มีปัญหาก็คุยกันที่ฟอรัมหรือล่างบทความนี้ก็ได้ครับ สำหรับผู้ใช้งาน Facebook ทุกท่าน

 

 

 

comments