ความแตกต่างระหว่าง ajax
posted on 24 Mar 2008 10:43 by xnanoob in PHPดีค่า
วันนี้มาทบทวนความแตกต่างระหว่างเว็บแบบ ajax และเว็บแบบที่ไม่ได้ใช้ ajax กันอะนะค่ะ จากในรูปอธิบายตามภาพ (ด้านบน web application ปกติ) โดยปกติแล้วนั้น การติดต่อแบบ client server จะมีการ request และ response เมื่อเราทำการกด url จะมีการ request มาจาก client หลังจากนั้น server ทำการตรวจสอบและประมวลผลต่างๆ เสร็จแล้วนั้น ก็จะส่งผลลัพธ์กลับไปยังเครื่อง client คือทำการ response นั้นเอง
ดังนั้นหาก server ยังไม่ทำการ response client จะทำการ request อีกไม่ได้ โดยหาก client ต้องการข้อมูลอีกก็ request ไปอีก , server ก็ทำงาน ถ้าทำเสร็จจึงค่อยส่งผลลัพธ์มา จากนั้นก็จะตัดการทำงานลงซึ่งก็ตาม protocal ของ HTTP ก็ที่เป็น connectionless อยู่แล้ว (มั่ง) ซึ่งในการที่ประมวลผลเสร็จแล้วจึงส่งผลลัพธ์กลับมา(ทั้ง page) นี้เองทำให้เกิดการรอคอยขึ้นมา หรือแว๊บๆ post back นั้นเอง
รูปจาก http://www.adaptivepath.com/ideas/essays/archives/000385.php
ส่วนด้านล่างซึ่งเป็นภาพการติดต่อแบบ asynchronous ซึ่งจะใช้ ajax engine เป็นส่วนติดต่อ โดยตัวติดต่อนี้เองจะเป็นหน้าที่ของ xmlhttprequest มันก็จะไปสร้าง object ขึ้นมาเพื่อทำหน้าที่รับส่ง จากพฤติกรรมของเว็บปกติจะต้องประมวลผลให้เสร็จก่อนแล้วค่อยส่งผลลัพธ์กลับมา แต่พอเปลี่ยนไปใช้ object xmlhttprequest มันก็จะรับส่งได้เลย แก้ปัญหาการรอตรงนี้ไปได้ ช่วยให้มีการตอบสนองได้ทันที คือเปลี่ยนแปลงข้อมูลเฉพาะที่ต้องการเปลี่ยนเท่านั้น ลดการ post back ในทั้ง page
โดยที่มีการแยกพิจารณาต่อไปด้วย หากข้อมูลที่ client ร้องขอ มีของอยู่ในตัวของ object xmlhttprequest แล้วนั้นก็จะส่งผลลัพธ์ให้เลยแต่ถ้าไม่มีก็จะไปร้องขอจาก server ใหม่
สิ่งที่แตกต่างกันอีกข้อก็คือ หลังจากที่ object xmlhttprequest ได้ผลลัพธ์จาก response ของ server แล้ว การติดต่อกับ server ก็ยังคงมีอยู่เพื่อรอรับบริการที่ต้องร้องขอจาก server (มั่งนะ)
เท่าที่ทราบตอนนี้อะนะค่ะ
จบแระค่า บายค่ะ
มาจาก : http://www.adaptivepath.com/ideas/essays/archives/000385.php
ปล. 1 กรุณาดูวันที่ post Mr. Jesse James Garrett February 18, 2005 ฝรั่งเค้าทำเป็นตั้งแต่ 3 ปี ก่อนแล้ว เราพึ่งมาอ่านของเค้าอีกที เฮือก








มาลงชื่อ เป็น noob ด้วยคนค่ะ เรื่อง web technology เนี่ย ^^;
#1 By Rinna on 2008-03-24 11:10