เทคนิคการส่งค่าจาก PHP ให้ JavaScript

ต่อจากตอนที่แล้ว “วิธีพัฒนา Squirrelmail Plugin – กรณี pagespeed

จากการพัฒนา pagespeed plugin สำหรับ Squirrelmail เพื่อแสดงให้ผู้ใช้เห็นถึง “ความเร็ว” ในการประมวลผลจากฝั่ง server ได้แล้ว

ต่อไปเราต้องการเอาดูว่า  “ความเร็ว” ในการเดินทางและแสดงผลบน Web Browser ของผู้ใช้ เป็นเท่าไหร่
ทำได้โดยการใช้งาน JavaScript จับเวลาการทำงาน

โดยเขียนโค๊ดต่อไปนี้ ใน ฟังก์ชั่น pagespeed_top

echo ' <SCRIPT LANGUAGE="JavaScript">
 beforeload = (new Date()).getTime();
 </script>
 ';

และส่วนนี้ไปในฟังก์ชั่น pagespeed_bottom

echo ' <SCRIPT LANGUAGE="JavaScript">
 afterload = (new Date()).getTime();
 seconds = (afterload-beforeload)/1000;
 document.write("Browser Speed: " + seconds + " s");
</script>
';

เท่านี้ก็จะทราบระยะเวลาในการเดินทางและแสดงผลเสร็จบน Web Browser แล้วแสดงผลต่อผู้ใช้

ต่อไปหากต้องการ รวมเวลาทั้งสิ้นที่ผู้ใช้ต้องรอ ตั้งแต่การทำงานที่ Squirrelmail จนกระทั้ง แสดงผลเสร็จ
ก็ต้องเอาค่าตัวแปรจาก PHP ที่ชื่อว่า $showtime มาบวกกับตัวแปรของ JavaScript ที่ชื่อว่า seconds

จะส่งค่าจาก PHP ให้ JavaScript อย่างไร ???

ดูเหมือนยาก แต่จริงๆแล้ว ก็เพียงแค่ให้ PHP แสดงผลเป็นตัวแปรของ JavaScript เท่านั้น ก็สามารถทำให้ JavaScript เอาไปใช้งานต่อได้แล้ว ดังนี้

echo ' <SCRIPT LANGUAGE="JavaScript">
   servertime = ' . $showtime . ';</SCRIPT>'  ;

แล้วปรับแต่งโค๊ดใน pagespeed_bottom ข้างต้นเป็น

echo ' <SCRIPT LANGUAGE="JavaScript">
   servertime = ' . $showtime . ';</SCRIPT>'  ;

echo ' <SCRIPT LANGUAGE="JavaScript"> 
afterload = (new Date()).getTime(); 
seconds = (afterload-beforeload)/1000; 
document.write("Browser Speed: " + seconds + " s"); 

total=servertime + seconds;

document.write("Total:" + total + " s");
</script> ';

เป็นตัวอย่างเทคนิคในการส่งค่าระหว่างการคำนวนของ PHP และ JavaScript เบื้องต้น

ติดตามต่อไปในเรื่องของ “เทคนิคในการบันทึกความเร็วของ Web Browser มาเก็บไว้ที่ Web Server”

Leave a Reply