แนวคิดนี้เกิดขึ้นในระหว่างที่ผมเรียนรู้การเขียนโปรแกรม PHP โดยเน้นใช้งาน Array เพื่อลดการใช้ทรัพยากรของ MySQL เพราะบางขั้นตอน เราสามารถเก็บข้อมูลไว้ในอาร์เรย์แล้วเรียกใช้งานจะเร็วกว่าการเรียกจากฐานข้อมูลเป็นครั้งๆ
PHP CI MANIA - PHP Code Generator
เมื่อใช้ Array มากๆ บางครั้งก็เปลืองหน่วยความจำ จึงเป็นเรื่องที่ต้องให้ความสำคัญทีเดียว การเขียนโค๊ด PHP เพื่อสั่ง MySQL คิวรี่หลายๆครั้งจะใช้ CPU มาก แต่การคิวรี่น้อยครั้งแล้วเก็บไว้ใน Array จะใช้หน่วยความจำมากเช่นกัน ดังนั้นคงต้องมองไปที่เซิร์ฟเวอร์ว่า ระหว่าง RAM กับ CPU อันไหนมีจำกัดกว่ากัน
ถ้าสามารถใช้ RAM ได้เหลือเฟือก็คงใช้ Array เก็บข้อมูลมากๆ ได้สบายๆ หรือถ้าไม่จำกัด CPU ปล่อยใช้เต็มที่แล้วล่ะก็จะเขียนโปรแกรมสั่งให้ MySQL คิวรี่กี่ครั้งก็ได้แล้วแต่คุณเลยละกัน
แต่โดยส่วนใหญ่ถ้าใช้งานบนเว็บโฮสติ้ง เขาจะจำกัดการใช้งาน CPU ไว้ หากระบบของเราใช้สูงเกินไป ก็จะมีอีเมลมาแจ้งเตือน และถ้าระบบของเราใช้เกินขีดจำกัดก็อาจจะถูกบล็อคการใช้งานไปเลย ต้องเสียเวลาเจรจาต่อรองกันอีกยาว
เริ่มจากแนวคิดเรื่อง "แบ่งภาระงานให้กับสคริปต์แต่ละตัวอย่างไรดี"
สคริปต์ที่ผมพูดถึงก็คือภาษาที่ใช้พัฒนาเว็บฯนั่นเอง ที่ใช้เป็นประจำก็คือ HTML, JavaScript, PHP (สำหรับ jQuery นั้นถือว่าเป็น Framework ของ JavaScript อยู่ในส่วนเดียวกัน)
HTML ทำงานบนฝั่งผู้ใช้งานแต่ละคน เป็นสคริปต์ภาษาหลักที่ใช้จัดรูปแบบหน้าเว็บเท่านั้น
JavaScript นั้นทำงานที่ฝั่งของผู้ใช้งานแต่ละคน
PHP จะทำงานอยู่บนเซิร์ฟเวอร์
นั่นหมายความว่า...
ถ้าเราใช้คำสั่ง PHP การเรียกใช้ตัวแปร หรือกระบวนการต่างๆ จะใช้ CPU และ RAM ของเครื่อง Server อย่างแน่นอน เช่นใช้ PHP สั่งแสดงข้อมูล HTML ด้วยคำสั่ง
<?php
echo "<b>Hello World</b>";
?>
การทำงานนี้ก็จะใช้หน่วยความจำ หรือ CPU ของเซิร์ฟเวอร์ใช่หรือไม่??
ดังนั้นถ้าเราเลี่ยงไปใช้ JavaScript เพื่อจัดรูปแบบแทนล่ะ ให้ PHP เป็นเพียงคำสั่งที่ใช้สำหรับติดต่อฐานข้อมูล และเรียกข้อมูลมาใช้งานเท่านั้นก็พอ ซึ่งการเขียนโปรแกรมด้วยวิธีนี้จะต้องอาศัยเทคนิค Ajax เข้ามาร่วมด้วย คือส่งข้อมูล เรียกข้อมูล และนำมาแสดงด้วย Javascript
ส่งค่าผ่าน Ajax โดยใช้ jQuery
$.ajax({
url: 'ajax.php',
type: 'get',
cache: false,
data: 'action=view',
success: displayData
});
คำสั่ง PHP ที่แสดงข้อมูล
<?php
echo "Hello World";
?>
เมื่อส่งค่ากลับมายังจาวาสคริปต์
function displayData(data){
$('#display").html("<b>" + data + "</b>");
}
นี่เป็นตัวอย่างเล็กๆ ของการใช้จาวาสคริปต์จัดรูปแบบให้ข้อมูลตัวอักษรหนาขึ้น แทนการ echo รูปแบบโดย PHP ซึ่งจะสังเกตได้ว่าการทำงานของ PHP นั้น จะทำหน้าที่ส่งข้อมูลมาแบบเพียวๆ ไม่มีการตกแต่งจัดรูปแบบ HTML แต่อย่างใด
สำหรับบทความต่อไป จะลองหาโค๊ดปฏิทินที่สร้างด้วย PHP มาแยกส่วนของข้อมูล และส่วนของ HTML ออกจากกัน เพื่อให้เห็นภาพชัดขึ้นว่าสิ่งที่บทความนี้พยายามจะชี้ให้เห็นนั้น หมายถึงอะไร
ปล1. สำหรับบทความนี้อาจจะไม่มีประโยชน์สำหรับใครก็ตามที่มีงบสูงสามารถซื้อเซิร์ฟเวอร์ราคาแพง หรือเช่าเว็บโฮสติ้งประสิทธิภาพสูงๆได้ แต่ก็แค่อยากบอกว่าถ้าคุณรู้สึกว่าเซิร์ฟเวอร์เปรียบเสมือนเพื่อนคนนึงของเรา และสงสารมัน ถ้าปรับได้ก็ลองปรับดูเถอะครับเผื่อจะช่วยอะไรมันได้บ้าง ^^"
ปล2. ผมมักจะแสวงหาเว็บโฮสติ้งฟรีเพื่อทดสอบโค๊ด หรือลอง CMS เล่นๆ แล้วก็มักจะลงเอยด้วยการโดยบล็อคไอดี และลบซอร์สโค๊ดของผม เพราะเจ้าของเขาบอกว่าใช้ CPU เกินขีดจำกัด
สำหรับบทความต่อไป จะลองหาโค๊ดปฏิทินที่สร้างด้วย PHP มาแยกส่วนของข้อมูล และส่วนของ HTML ออกจากกัน เพื่อให้เห็นภาพชัดขึ้นว่าสิ่งที่บทความนี้พยายามจะชี้ให้เห็นนั้น หมายถึงอะไร
ปล1. สำหรับบทความนี้อาจจะไม่มีประโยชน์สำหรับใครก็ตามที่มีงบสูงสามารถซื้อเซิร์ฟเวอร์ราคาแพง หรือเช่าเว็บโฮสติ้งประสิทธิภาพสูงๆได้ แต่ก็แค่อยากบอกว่าถ้าคุณรู้สึกว่าเซิร์ฟเวอร์เปรียบเสมือนเพื่อนคนนึงของเรา และสงสารมัน ถ้าปรับได้ก็ลองปรับดูเถอะครับเผื่อจะช่วยอะไรมันได้บ้าง ^^"
ปล2. ผมมักจะแสวงหาเว็บโฮสติ้งฟรีเพื่อทดสอบโค๊ด หรือลอง CMS เล่นๆ แล้วก็มักจะลงเอยด้วยการโดยบล็อคไอดี และลบซอร์สโค๊ดของผม เพราะเจ้าของเขาบอกว่าใช้ CPU เกินขีดจำกัด
ความคิดเห็น
แสดงความคิดเห็น