ดาวโหลดไฟล์ตัวอย่าง และไฟล์ที่จำเป็นได้ที่
https://www.ninenik.com/download/ajax-cache-page.rar
โค้ดตัวอย่างการใช้งาน
<?php include("cache-kit.php"); // เรียกใช้ไฟล์ php class $cache_active = true; // กำหนดให้ทำการ cache $cache_folder = 'cache/'; // กำหนดไฟลเดอร์ที่ไว้เก็บไฟล์ cache ?> <?php $fullPathFile="http://".$_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI']; $page_cache = acmeCache::fetch($fullPathFile.$n_browser, 10); // ทำการ cache หน้าเว็บไซต์ใหม่ ไว้ในตัวแปร $page_cache ทุกๆ 10 วินาที สามารถกำหนดเป็นค่าอื่นได้ if(!$page_cache){ // ตรวจสอบว่าถ้าไม่มีข้อมูลที่ cache ไว้ ให้ทำการเก็บค่า html ไว้สำหรับบันทึก cache ?> <html> <head> <title>Cache Page</title> <style type="text/css"> ..mysty1{ width:550px; height:200px; background-color:#FFCC66; } </style> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> </head> <body> <div class="mysty1"> <p>ตัวอย่างต่อไปนี้เป็นการ cache ไฟล์ทุก 10 วินาที<br> จะทำการ cache หลังจากโหลดหน้าเว็บแล้ว 2 วินาที ด้วย ajax</p> <p>ทดสอบ โดย เมื่อเข้ามาหน้านี้ครั้งแรก จะไม่มีข้อความว่า Cache Data<br> แสดงว่าเป็นการโหลดข้อมูลแบบปกติ ให้รออย่างน้อย 2 วินาที แล้วกด refresh ที่ บราวเซอร์<br> จะแสดงข้อความ Cache Data ใต้กล่องสี่เหลี่ยมสีเหลืองแก่ แสดงว่าเป็นข้อมูลจากการ cache<br> และข้อมูลการ cache จะอยู่นาน 10 วินาที ตามที่กำหนดในตัวอย่าง ซึ่งสามารถกำหนด เป็นจำนวนที่มากๆ ได้ ขึ้นอยู่กับความต้องการแสดงข้อมูลให้เป็นปัจจุบัน</p> </div> <script type="text/javascript" src="js/jquery-1.4.2.min.js"></script> </body> </html> <?php if(!isset($_POST['genTime'])){ echo "<script type="text/javascript">rn"; echo "$(function(){rn"; echo "setTimeout(function(){rn"; echo "$.post('genCache.php',{nameFile:'".$fullPathFile."'});rn"; echo "},2000);rn"; echo "});rn"; echo "</script>rn"; } }else{ echo $page_cache; // แสดงข้อมูลที่ทำการ cache echo "Cache Data"; // สำหรับทดสอบว่า เป็นข้อมูลที่ได้จากการ cache หรือไม่ เมื่อใช้งาน สามารถ comment บรรทัดนี้ หรือลบทิ้งได้ } ?>
โค้ดไฟล์ genCache.php
<?php include("cache-kit.php"); // เรียกใช้ไฟล์ php class $cache_active = true; // กำหนดให้ทำการ cache $cache_folder = 'cache/'; // กำหนดไฟลเดอร์ที่ไว้เก็บไฟล์ cache $url = $_POST['nameFile']; $data = array('genTime' => time()); $ch = curl_init($url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, $data); $data = curl_exec($ch); curl_close($ch); acmeCache::save($_POST['nameFile'].$n_browser,$data); // ทำการบันทึก html จากตัวแปร $page_cache ไว้ใน cache ชื่อ page_cache ?>
ลิ้งค์ตัวอย่าง
#