PHP Ionic Angularjs Phonegap AJAX Javascript CSS MySQL jQuery Forum

เพิ่มความเร็ว ให้กับการ cache ด้วย jquery ajax และ php cache class

09 July 2010 By


ดาวโหลดไฟล์ตัวอย่าง และไฟล์ที่จำเป็นได้ที่
http://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
?>


ลิ้งค์ตัวอย่าง
http://www.ninenik.com/demo/cache-page/example.php


Tags:: ajax cache jquery php





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