PHP Ionic Angularjs Phonegap AJAX Javascript CSS MySQL jQuery Forum

ทำการ cache หน้าเว็บไซต์ด้วย php class อย่างง่าย

23 November 2009 By


ประโยชน์ของการ 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




Tags:: php cache





URL สำหรับอ้างอิง