ยินดีต้อนรับคุณ, บุคคลทั่วไป กรุณา เข้าสู่ระบบ หรือ ลงทะเบียน

เข้าสู่ระบบด้วยชื่อผู้ใช้ รหัสผ่าน และระยะเวลาในเซสชั่น

ThaiSEOBoard.comพัฒนาเว็บไซต์Programmingใครเก่ง Php cache kit ช่วยดูโค้ดกระทู้ล่าสุด smf หน่อยครับ จะทำแคช
หน้า: [1]   ลงล่าง
พิมพ์
ผู้เขียน หัวข้อ: ใครเก่ง Php cache kit ช่วยดูโค้ดกระทู้ล่าสุด smf หน่อยครับ จะทำแคช  (อ่าน 3432 ครั้ง)
0 สมาชิก และ 1 บุคคลทั่วไป กำลังดูหัวข้อนี้
goozend
ก๊วนเสียว
*

พลังน้ำใจ: 5
ออฟไลน์ ออฟไลน์

กระทู้: 266



ดูรายละเอียด
« เมื่อ: 14 เมษายน 2010, 04:26:51 »

อันนี้ มันจะดึงค่าจาก mysql มาโชว์กระทู้ล่าสุดนะครับ

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

http://www.scriptdd.com/webtip/php-cache-kit.html

แต่ลองทำแล้วก็ไม่เข้าใจครับ ไม่ทราบมีใคร พอช่วยได้ไหมครับ

นี่โค้ดประมานนี้ครับ
โค๊ด:
<? 
$list = "15";

$sboard = "1";

if (empty($board)) {
$board = "1.0";
}
include("Settings.php");

$host = $db_server;
$user = $db_user;
$pass = $db_passwd;
$database = $db_name;
$prefix = $db_prefix."topics";
$prefix2 = $db_prefix."messages";

@mysql_connect($host,$user,$pass) or die("ขออภัยค่ะ ขณะนี้ไม่สามารถติดต่อฐานข้อมูลได้ กรุณาเข้าชมใหม่ภายหลัง");
mysql_query;
if ($sboard=="0") {
$Sql = "SELECT * FROM $prefix order by ID_TOPIC DESC limit 0,$list ";
} elseif ($sboard=="1") {
$Sql = "SELECT * FROM $prefix where ID_BOARD='$board' order by ID_TOPIC DESC limit 0,$list ";
}
$result = mysql_db_query($database,$Sql);
$nrow = mysql_num_rows($result);
while ($num = mysql_fetch_array($result)) {

$tid = $num["ID_TOPIC"];
$bid = $num["ID_BOARD"];
$fid = $num["ID_FIRST_MSG"];
$view = $num["numViews"];
$reply = $num["numReplies"];

$msql = "select * from $prefix2 where ID_MSG='$fid'";
$mresult = mysql_db_query($database,$msql);
$marr = mysql_fetch_array($mresult);
$title = $marr["subject"];
$poster = $marr["posterName"];
$today = date("d M Y");
$time = date("d M Y", $marr["posterTime"]);
if ($today==$time) {
$time = date("<font color='#FF0000'><b>วันนี้ .</font></b>", $marr["posterTime"]);
} else {
$time = date("<b>เมื่อวานนี้ .</b>", $marr["posterTime"]);
}

echo "<img src=m.gif width=7 height=7 border=0 alt='Topic $tid'>&nbsp;\n";
echo "<a href='index.php?board=$bid;action=display;threadid=$tid' target='_blank'><b>$title</b></a> [ ดู:$view ครั้ง ]</span><br>\n";
}

?>

ผมไม่เข้าใจว่าต้องเอาค่าไหน ใส่ใน Result  ของ php cache kit อ่ะครับ

รบกวนช่วยหน่อยนะครับ งมมาหลายชั่วโมงแล้วครับ
บันทึกการเข้า

ขายเว็บ 18+ รายได้ 2-30000 up

ราคา 200000 รับประกันคืนทุน 12 เดือน + ดูแลฟรีจนกว่าจะคืนทุน

สนใจ pm ขอคนที่สนใจจิงๆ นะครับ
Putter™
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 421
ออฟไลน์ ออฟไลน์

กระทู้: 2,104



ดูรายละเอียด เว็บไซต์
« ตอบ #1 เมื่อ: 14 เมษายน 2010, 04:50:33 »


เรื่อง Code นี้ผมก็ไม่รู้เรื่องซักเท่าไรคับ แต่ SMF ก็มีให้เปิดใช้งาน Cache อยู่นะครับ
« แก้ไขครั้งสุดท้าย: 14 เมษายน 2010, 04:52:14 โดย putter » บันทึกการเข้า

Ruk-Com Hosting (IAAS)
Ruk-Com Cloud (PAAS)
รีวิวโฮสติ่ง Ruk-Com  จากสมาชิก THAISEO

ไม่พอใจยินดีคืนเงินเต็มจำนวนทุกบริการ
GillBate
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 160
ออฟไลน์ ออฟไลน์

กระทู้: 1,236



ดูรายละเอียด
« ตอบ #2 เมื่อ: 14 เมษายน 2010, 06:46:35 »

 Tongue เวลาดึงมาเสร็จแล้วใช้ mysql_free_result() กับ mysql_close() ก้น่าจะไม่เป็นไรมั้งครับ ดึงเสร็จแล้วก้ปิดแล้วคืน memory ในเครื่องเลยอ่ะครับ
บันทึกการเข้า
goozend
ก๊วนเสียว
*

พลังน้ำใจ: 5
ออฟไลน์ ออฟไลน์

กระทู้: 266



ดูรายละเอียด
« ตอบ #3 เมื่อ: 16 เมษายน 2010, 10:52:43 »

ตอนนี้ได้แล้วครับ คือทำ แคช ทั้งไฟล์ เลยครับ

ดีขึ้นมากเลยครับ

เด่วรอดูสักระยะครับ

บันทึกการเข้า

ขายเว็บ 18+ รายได้ 2-30000 up

ราคา 200000 รับประกันคืนทุน 12 เดือน + ดูแลฟรีจนกว่าจะคืนทุน

สนใจ pm ขอคนที่สนใจจิงๆ นะครับ
auzone
ก๊วนเสียว
*

พลังน้ำใจ: 10
ออฟไลน์ ออฟไลน์

กระทู้: 319



ดูรายละเอียด เว็บไซต์
« ตอบ #4 เมื่อ: 16 เมษายน 2010, 11:16:34 »

ทำแบบใหนคับ แนะนำบ้างสิคับ อิอิอยากทราบวิธีใหม่ๆ
ไม่ได้ไม่เป้นไรครับ ขอบคุณครับ
บันทึกการเข้า

ห้ามก๊อป (copy) แบบเว็บกันนะครับ เจอทีไรใจแทบสลาย....
ใส่ลิ้งค์ได้ยังหว่า : ใครเลี้ยง หนูแฮมสเตอร์ เม่นแคระ กระต่าย หรือ หนูแกสบี้ บ้าง เม่นแคระ
รับซื้อเว็บเกี่ยวกับ สัตว์เลี้ยง | ท่องเที่ยว
pan11
บุคคลทั่วไป
« ตอบ #5 เมื่อ: 16 เมษายน 2010, 11:25:22 »

หมายถึง cach จากเซิฟเวอร์หรอครับ จะไม่เกิดปัญหาข้อมูลซ้ำๆไม่มีการเปลี่ยนแปลงหรือครับ ไม่รู้นะเคยเป็นแนวๆนี้:P
บันทึกการเข้า
goozend
ก๊วนเสียว
*

พลังน้ำใจ: 5
ออฟไลน์ ออฟไลน์

กระทู้: 266



ดูรายละเอียด
« ตอบ #6 เมื่อ: 16 เมษายน 2010, 13:34:50 »

ทำแบบใหนคับ แนะนำบ้างสิคับ อิอิอยากทราบวิธีใหม่ๆ
ไม่ได้ไม่เป้นไรครับ ขอบคุณครับ

ประมานนี้ครับ

โค๊ด:
<?php
$_CACHE_DIR 
'cache/';
$_CACHE_TIMEOUT=600;  // sec

$filename $_CACHE_DIR.md5($_SERVER["REQUEST_URI"]);

if (
file_exists$filename))
{
   if (
filemtime($filename) < (time()-$_CACHE_TIMEOUT))
   {
      
$cache false;
   } else {
      
$cache true;
   }
} else {
   
$cache false;
}




if (
$cache || file_exists("$filename.lock"))
{
   include( 
$filename);
} else {
   
touch("$filename.lock");
   
ob_start();

ใส่เนื้อหาที่ต้องการ แคชตรงนี้ครับ ในทีนี้ ผมใส่เป็นกระทู้ ล่าสุด 15 กระทู้
   
   $contents 
ob_get_contents();
   
ob_end_clean();
   if (
file_exists("$filename.lock"))
   {
      
unlink("$filename.lock");
   }

   
$handle fopen($filename'w');
   if (
$handle)
   {   
      
fwrite($handle$contents);
      
fclose($handle);
   }
}
?>

มันแคคชสำเร็จนะครับ แต่ว่า Server ก็ยังคงทำงานหนักอยู่ ผม งงครับ

ตอนนี้ กำลังหาวิธี ให้มัน generate html ไปเลยครับ เพราะ php พอคนดึงเยอะๆ มัน overload ครับ  wanwan031
บันทึกการเข้า

ขายเว็บ 18+ รายได้ 2-30000 up

ราคา 200000 รับประกันคืนทุน 12 เดือน + ดูแลฟรีจนกว่าจะคืนทุน

สนใจ pm ขอคนที่สนใจจิงๆ นะครับ
GillBate
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 160
ออฟไลน์ ออฟไลน์

กระทู้: 1,236



ดูรายละเอียด
« ตอบ #7 เมื่อ: 16 เมษายน 2010, 13:40:02 »

 Tongue ไปหามาให้ครับ ลองเจนเป็น HTML ดูนะครับ ได้ยังไงมาบอกผลด้วยนะครับ
http://www.webhostingtalk.com/showthread.php?t=402191
บันทึกการเข้า
goozend
ก๊วนเสียว
*

พลังน้ำใจ: 5
ออฟไลน์ ออฟไลน์

กระทู้: 266



ดูรายละเอียด
« ตอบ #8 เมื่อ: 16 เมษายน 2010, 14:08:53 »

Tongue ไปหามาให้ครับ ลองเจนเป็น HTML ดูนะครับ ได้ยังไงมาบอกผลด้วยนะครับ
http://www.webhostingtalk.com/showthread.php?t=402191


ตอนนี้หาวิธีได้แล้วครับ แต่วิธีที่ท่านบอกก็น่าสนใจมากครับ

คือผมทำแบบนี้ครับ คือให้ ไฟล์ php ของเราอ่ะครับ ทำระบบ cache ไว้ใช่ไหม พอเรา รันมันก็สร้าง cache ให้เราอ่ะครับผมก็แก้ไข สคริปนิดหน่อยให้สร้างCacheเป็นชื่อไฟล์.html

แล้วผมก็ดึงไฟล์ แคชมาใช้งานเลยครับ ที่นี้ เวลาเราอยากให้มันอัพเดท ข้อมูล ก็รันไฟล์ php  ครับ ทำแบบนี้มันเบาโฮสกว่า

ผมงง อยู่อย่างนึงครับ ไม่ว่าผมจะสร้างอะไรใน php แล้วผมใช้ ไอเฟรมดึงออกไปใส่ในเว็ปที่มี การโหลด หน้าเยอะๆ ปรากฏ มันก็ส่งผลให้ server ช้าครับ ผมใช้ lighttpd ไม่แน่ใจว่า ระบบมันผิดพลาดหรือเปล่า แต่พอเปลี่ยนจาก php เป็น html ก็ปกติครับ

อาการ คือ เหมือนว่า เช็คจาก process มันไม่ได้ Running ครับ แต่ขึ้นเป้น sleep ( เช็คจาก Kloxo)  แบบนี้เหมือนมันไม่ยอมคืนแรมเข้าระบบหรือเปล่าครับ เลยทำให้ช้า

คิดดูนะครับ แรมมี 1GB มันก็ ซัดเกลี้ยงเลยครับ ทำให้ต้องลบไฟล์ php นั้นทิ้ง พอลบแล้วก็ ปกติเลยครับ ทั้งๆที่ในไฟล์ php ไม่มีอะไรอยู่เลยนะครับ ผมลบ เนื้อหาที่เชื่อมต่อพวก database ออกหมดแล้วครับ

ใครพอรู้วิธีแก้บ้างครับ
บันทึกการเข้า

ขายเว็บ 18+ รายได้ 2-30000 up

ราคา 200000 รับประกันคืนทุน 12 เดือน + ดูแลฟรีจนกว่าจะคืนทุน

สนใจ pm ขอคนที่สนใจจิงๆ นะครับ
kobkung
Verified Seller
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 103
ออฟไลน์ ออฟไลน์

กระทู้: 1,312



ดูรายละเอียด เว็บไซต์
« ตอบ #9 เมื่อ: 17 เมษายน 2010, 01:55:14 »

จากประสบการณ์ตรง เคยโมเว็บบอร์ดตัวนึง คนเก่าทำชุ่ยมากๆ แก้อย่างเหนื่อย
ไม่รู้ทำไง op โค้ดห่วยสุดๆ จับ cachekit ใส่ไป ช่วยได้นิดหน่อย
ง่ายๆ ไม่มีไรมาก แต่ต้องปรับโค้ด ถ้าเขียนแบบ html ปนกะ php โดยไม่ echo หมด เนื่องจากมันเป็น filecache

หลักๆ คือมันจะจำค่าที่เปิดไว้ตามเวลาของ cache เช่น

ถ้าไม่เคยเปิดกระทู้นี้มาก่อน จะไปสร้างเป็น html ไว้ให้ใน folder ที่กำหนด
คนต่อไปมาเปิด ถ้ายังอยู่ในเวลาของ cache ระบบจะเรียก html มาแทนการ query จากเบส
ถ้าเกินเวลา cache จะถูกลบ และเมื่อมีคนเปิดใหม่ ก็สร้าง cache ใหม่ แล้วก็ส่ง html ออกไปแทน
เวลาของ cache ก็ตั้งได้ในโค้ด

ใน code ตัวอย่างที่เขาให้มา มันจะมี if อะไรเนี่ย ถ้าจำไม่ผิดเป็น if result หลังบรรทัดนี้คือดึง cache ไรเนี่ยแหละ
แล้วก็เข้ารหัส md5 gen html ออกมา  ไม่ยาก ใช้ file เดียวที่เขาให้มา include ไปอะ ใช้ได้เลย
แต่ถ้าใช้กับพวกดึง record ต้องแก้ตัว key หน่อย เพราะมันตั้งเป็นชื่อเดียว จะ gen เซฟทับไฟล์เดิม
ให้เอา id ไปใส่แทน ลองหาดู

ตอนนั้นเขียนลด cpu ไป 50% ได้ แต่ยังคงล่มอยู่ดี เพราะโค้ดต้นฉบับมันห่วย

ปล.อย่า pm มา ไม่ค่อยว่างตอบช่วงนี้งานใหญ่เข้า
« แก้ไขครั้งสุดท้าย: 17 เมษายน 2010, 02:00:55 โดย kobkung » บันทึกการเข้า

เราเป็นบริษัท รับทำเว็บไซต์ แก้เว็บเดิม เขียน Php+Mysql+jQuery+css+bootstrap  งานตามสั่ง ประสบการณ์ จะ 19 ปี ละจ้า
Smilephp.com รับทำเว็บไซต์บริษัท e-commerce + ระบบชำระเงิน paypal,ธนาคาร  เว็บบริษัท เว็บขายของ ระบบจอง เช่า เขียน PHP ได้ทุกแนว  ช่วงนี้เน้นรับงาน ERP ระบบเอกสารบริษัท ,บัญชี ,  Barcode, Stock , Warehouse , Logistic ติดต่อ 086-364-5262

งดตอบคนทำเว็บนอกลู่นอกทาง ไม่ทำเว็บ WP ปั่นแชร์ เว็บประมูล สคริปปั่นใดๆ ไม่ทำเว็บบอลและพ
หน้า: [1]   ขึ้นบน
พิมพ์