ต่อจากตอนที่แล้ว “วิธีพัฒนา 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”