ทำการ cache หน้าเว็บไซต์ด้วย php class อย่างง่าย
23 November 2009ประโยชน์ของการ cache ข้อมูล ทำให้เว็บไซต์แสดงผลได้เร็วขึ้น ลดการประมวลผลข้อมูล โดยดึงข้อมูลจากการ cache มาแสดง
ทำให้ไม่ต้องประมวลผลทุกๆ ครั้ง ที่มีการเรียกหน้าเว็บเพจนั้นๆ มาแสดง คุณสมบัติเด่นของ php class ตัวนี้คือ
สามารถกำหนดเวลาในการดึงข้อมูลใหม่ หรือ การเรียกดูข้อมูลปัจจุบันทุกๆ เวลาที่กำหนด โดยสามารถกำหนดได้ในหน่วย วินาที
ตัวอย่างหลักการคร่าวๆ
1. ผู้ใช้คนที่ 1 เปิดเว็บไซต์หน้าแสดงสินค้า ซึ่งดึงข้อมูลจากฐานข้อมูล และการประมวลผล
2. ระบบ cache จะทำการบันทึก หน้าแสดงสินค้า ไว้ในโฟลเดอร์ cache ที่กำหนดไว้ที่ server
3. เมื่อผู้ใช้ึคนที่ 2 เปิดหน้าแสดงสินค้า ระบบ cache จะตรวจสอบว่าหน้าแสดงสินค้า มี การ cache หรือไม่
4. ถ้าข้อมูลมีการ cache ระบบจะดึงไฟล์ที่ทำการ cache มาแสดง โดยไม่ต้องดึงข้อมูลจากฐานข้อมูล หรือประมวลผลใหม่อีก
5. ดึงนั้นการแสดงข้อมูลจะเร็วขึ้น และลดการประมวลผลที่ฝั่ง sever
6. หากยังไม่มีการ cache หรือ ครบเวลาที่กำหนดให้เรียกข้อมูลใหม่ ระบบก็จะทำการ cache ข้อมูลใหม่ ทำให้ได้ข้อมูลที่อัพเดท ข้อมูลที่ได้
ก็จะถูกเรียกใช้งานจาก ผู้ใฃ้ที่ 3 , 4 , 5...... ต่อไปเรื่อยๆ
ดาวน์โหลดไฟล์ที่จำเป็น และตัวอย่าง http://www.ninenik.com/download/cache-page.zip
PHP code ตัวอย่าง
<?php
@include("cache-kit.php"); // เรียกใช้ไฟล์ php class
$cache_active = true; // กำหนดให้ทำการ cache
$cache_folder = 'cache/'; // กำหนดไฟลเดอร์ที่ไว้เก็บไฟล์ cache
?>
<?php
function callback($buffer) { // ฟังก์ชันสำหรับเก็บค่า html ไว้ในตัวแปร
return $buffer;
}
?>
<?php
$page_cache = acmeCache::fetch('page_cache', 10);
// ทำการ cache หน้าเว็บไซต์ใหม่ ไว้ในตัวแปร $page_cache ทุกๆ 10 วินาที สามารถกำหนดเป็นค่าอื่นได้
if(!$page_cache){ // ตรวจสอบว่าถ้าไม่มีข้อมูลที่ cache ไว้ ให้ทำการเก็บค่า html ไว้สำหรับบันทึก cache
ob_start("callback"); // เริ่มต้นการบันทึก html
?>
<html>
<head>
<title>Cache Page</title>
<style type="text/css">
.mysty1{
width:150px;
height:200px;
background-color:#FFCC66;
}
</style>
</head>
<body>
<div class="mysty1">
</div>
</body>
</html>
<?php
$page_cache=ob_get_contents(); // เก็บข้อมูล html ไว้ในตัวแปร $page_cache
ob_end_flush(); // ตำแหน่งสิ้นสุด
acmeCache::save('page_cache',$page_cache); // ทำการบันทึก html จากตัวแปร $page_cache ไว้ใน cache ชื่อ page_cache
}else{
echo $page_cache; // แสดงข้อมูลที่ทำการ cache
echo "Cache Data"; // สำหรับทดสอบว่า เป็นข้อมูลที่ได้จากการ cache หรือไม่
}
?>
ดาวน์โหลดไฟล์ที่จำเป็น และตัวอย่าง http://www.ninenik.com/download/cache-page.zip
บทความคนเข้าอ่านวันนี้
25 Sep 08 การกำหนด Selectors ด้วย jquery แบบ Basic อ่าน 4591 19 Jun 10 สร้าง comment ด้วย social plugins ใน facebook api อย่างง่ายดาย อ่าน 20166 08 Oct 08 การจัดตำแหน่ง div ให้อยู่กี่งกลาง อ่าน 6296 20 Aug 09 jQuery ป้องกัน การคลิกขวา ในหน้าเว็บไซต์ อ่าน 3045 25 Mar 09 ใช้งาน cookie ในการจำค่าชื่อผู้ใฃ้และรหัสผ่าน ด้วย javascript และ php อ่าน 3104 13 Oct 11 แนะนำการใช้งาน การเชื่อมต่อ facebook ด้วย php sdk v.3.1.1 อ่าน 2271 18 Mar 10 การเก็บข้อมูลวันที่ ในฐานข้อมูล กับคำสั่ง sql ในการค้นหา อ่าน 5880 29 Sep 10 แนวทาง การสร้าง ระบบตรวจสอบ การล็อกอิน อย่างง่าย ด้วย ajax ใน jQuery และ php อ่าน 5046 04 Nov 10 การสร้าง json ไฟล์ จากฐานข้อมูล ด้วย php และการใช้งานด้วย jQuery getJSON() อ่าน 4532 12 Nov 08 กำหนด permission ไฟล์หรือโฟลเดอร์ด้วยฟังก์ชัน FTP ใน PHP อ่าน 2137 16 Oct 08 การแสดงเฉพาะปุ่มสำหรับ upload อ่าน 3576 21 Dec 10 กำหนด ปุ่ม ให้ทำงาน เมื่อคลิกที่ checkbox ยอมรับเงื่อนไข ด้วย jQuery อ่าน 2671 24 Feb 10 เทคนิค สร้าง effect add to cart ด้วย jQuery อย่างง่าย อ่าน 5312 25 Sep 08 ตกแต่งภาพในเว็บให้น่าสนใจคล้ายภาพสะท้อนจากน้ำ อ่าน 2692 27 Jan 10 การใช้งาน jQuery.contains() ใน jQuery 1.4 อ่าน 2462 04 May 10 ประยุกต์ ใช้งาน php และ ajax ใน jQuery แสดงผลลัพธ์ คล้าย twitter อ่าน 3819 26 Oct 08 แสดง popup window ตรงกลาง อ่าน 12387 26 Oct 10 แนะนำ autocomplete ใน jQuery ui กับการประยุกต์ใช้งาน อ่าน 2502 17 Feb 12 ประยุกต์ ใช้งาน jquery ui autocomplete ร่วมกับฐานข้อมูล อย่างง่าย อ่าน 3274 25 Sep 08 มารู้จัก effect ของ jquery อย่างง่าย ตอนที่ 1 อ่าน 6823
