r5 - 14 Feb 2007 - 15:07:33 - KritsanaMunwongYou are here: NTL >  Project Web  > AJAX
-- KritsanaMunwong - 31 Jan 2007

AJAX (Asynchronous JavaScript? and XML)
AJAX ย่อมาจาก "AsynchronousJavaScriptandXML" เป็นเทคนิคเพื่อทำให้เว็บแอปปลิเคชั่นมีการตอบสนองที่รวดเร็วทันใจขึ้น มีการเปลี่ยนแปลงข้อมูลที่แสดงบนหน้าเว็บโดยใช้ข้อมูลจากเซอร์เวอร์ โดยไม่ต้องมีการรีโหลดหน้าเว็บใหม่ทั้งหน้า
ตัวอย่างของเว็บแอปปลิเคชั่นที่ใช้เทคนิคของ AJAX ที่เรามีโอกาสได้ใช้งานได้แก่ Gmail, Google Suggest, Google Maps, Flickr, MS Outlook Web Access เป็นต้น แอปปลิเคชั่นเซอร์วิสเหล่านี้เป็นต้นแบบของระบบที่จัดว่าเป็นระบบ Web 2.0 ด้วย ซึ่งรายละเอียดของ Web 2.0 นี้ สามารถอ่านได้จาก ในส่วนอ้างอิง
สำหรับผู้ที่ใช้ Gmail จะสังเกตุเห็นว่า เวลาที่เราป้อนอีเมลล์ของคนที่เราต้องการส่งถึง ตัว Gmail จะแสดงรายชื่ออีเมลล์ของคนที่เราเคยติดต่อด้วย และรายการจะมีการปรับปรุงตลอดเวลาในขณะที่เราพิมพ์อีเมลล์
AJAX จึงไม่ใช่เทคโนโลยีในตัวของมันเอง แต่ว่าเป็นการนำเทคโนโลยีหลายๆ ตัวมารวมกันเช่น JavaScript?, DHTML, XML, CSS, Dom และ XMLHTTPRequest
Ajax engine ทำหน้าที่เป็นตัวกลางระหว่าง client และ server ฉะนั้นเมื่อ client มี requestแทนที่จะส่ง HTTP request ไปยัง server โดยตรง client จะส่ง JavaScript?? call ไปยัง Ajax engine เพื่อโหลดข้อมูลที่ user ต้องการ และหาก Ajax engine ต้องการข้อมูลเพิ่มเติมในการตอบสนองต่อ user Ajax engine จะส่ง request ไปยัง server โดยใช้ XML การ์เรตได้กล่าวถึงเทคโนโลยีต่าง ๆ ที่เป็นส่วนประกอบของ Ajax ซึ่งได้แก่
- HTML/XHTML เป็นภาษาในการจัดแสดงข้อมูล
- CSS เป็นรูปแบบการจัดแต่ง XHTML
- Document Object Model (DOM) สำหรับ dynamic display and interaction
- XML เป็นรูปแบบการแลกเปลี่ยนดาต้า
- XSLT สำหรับ แปลง XML เป็น XHTML
- XMLHTTPRequest สำหรับ asynchronous data retrieval
ข้อดีของ Ajax
- ตอบสนองต่อผู้ใช้ได้อย่างรวดเร็วเนื่องจากการ update แบบบางส่วน
- ผู้ใช้ไม่ต้องหยุดรอคอยการประมวลของ server เนื่องจากการติดต่อแบบ Asynchronous
- รองรับกับบราวเซอร์หลักๆที่สามารถใช้ JavaScript?? ได้
- ทำให้การประมวลผลที่ Server มีความรวดเร็วขึ้นเนื่องจากการประมวลผลที่ Server ลดลง
- ไม่ต้องทำการติดตั้ง หรือใช้ Plugs-in
- ไม่ยึดติดกับ Platform หรือภาษาที่ใช้ในการเขียนโปรแกรม
- เป็นเทคโนโลยีใหม่ที่ไม่ได้เป็นของนักพัฒนาเว็บแอพลิเคชั่นคนใด นั่นคือทุกคนมีสิทธิ์เข้ามาพัฒนาแอพลิเคชั่นตัวนี้

AJAX Uses http Requests
ในการเขียน JavaScript? ถ้าต้องการส่งข้อมูลจาก ฐานข้อมูลไปยัง Server หรือส่งข้อมูลผูใช้ไปยัง Server เราต้องใช้ HTML โดยใช้ Method GET และ POST ไปยัง Server โดยเมื่อผู้ใช้กดปุ้ม Submit ก็จะมีการส่งข้อมูลไปยัง Server เพื่อตอบรับ แล้วจะมีการโหลดหน้าเว็บเพจใหม่ขึ้นมาเพราะการส่งหน้าเพจใหม่ให้ผู้ใช้ให้มีการใสค่าที่ช่องรับข้อมูล จึงทำให้มีการโหลดข้อมูลใหม่ทุกๆครั้งจึงทำให้มีความล่าช้าในการโหลดเพจแต่ละครั้ง
ใน Ajax จะใช้ JavaScript? ติดต่อโดยตรงกับ Server โดยใช้ JavaScript? XMLHttpRequest? objectใน HTTP request สามารถเรียกหน้าเว็บเพจและตอบกลับจาก Web server ในการรีโหลดหน้าเว็บเพจ โดยวิธีการนี้จะมีการส่งข้อมูลอยู่เบื้องหลัง ไม่ต้องโหลดข้อมูลที่มีอยู่แล้วมาอีก เพียงแต่โหลดข้อมูลใหม่มา
ตัวอย่างการใช้ Ajax
อย่างแรกที่ต้องทำคือการใช้ HTML ในการสร้างฟอร์มผู้ใช้และเวลา

Name: Time:

การใช้ XMLHttpRequest? object
ความแตกต่างในการใช้เบราเซอร์
ใน Internet Explorer จะใช้ ActiveXObject? ในขณะที่ เบราเซอร์ที่ใช้ JavaScript? จะเรียกใช้โดยXMLHttpRequest. การสร้าง object และความแตกต่างเบราเซอร์ ต่อไปนี้จะใช้ try and catch
ตัวอย่าง

AJAX - More About the XMLHttpRequest? Object
หลังจากที่มีการส่งข้อมูลให้กับ Server เรามีคุฯสมบัติที่สำคัญ 3อย่าง ในการใช้ XMLHttpRequest? object.
คุณสมบัติที่เรียกใช้ function นำไปประมวลผลฝั่ง Server

xmlHttp.onreadystatechange=function()
  {
  // We are going to write some code here
  }

*มาดูสถานะการทำงานการตอบรับทางฝั่ง Server
* State Description
0 The request is not initialized
1 The request has been set up
2 The request has been sent
3 The request is in process
4 The request is complete
xmlHttp.onreadystatechange=function()
  {
  if(xmlHttp.readyState==4)
    {
    // Get the data from the server's response
    }
  }


toggleopenShow attachmentstogglecloseHide attachments
Topic attachments
I Attachment Action Size Date Who Comment
docdoc try_catch.doc manage 25.5 K 13 Feb 2007 - 11:53 KritsanaMunwong try_catch for java scrript
elsechm Sams.Ajax.for.Web.Application.Developers.Oct.2006.chm manage 1439.5 K 14 Feb 2007 - 08:15 KritsanaMunwong ebook AJAX
zipzip DBAjax.zip manage 4.9 K 14 Feb 2007 - 08:23 KritsanaMunwong DBAjax
elserar Source_AJAX__Sample.rar manage 121.8 K 14 Feb 2007 - 15:07 KritsanaMunwong ตัวอย่างโปรแกรมที่เขียนด้วย AJAX
Edit | WYSIWYG | Attach | Printable | Raw View | Backlinks: Web, All Webs | History: r5 < r4 < r3 < r2 < r1 | More topic actions
 
Powered by NTL
This site is powered by the TWiki collaboration platformCopyright © by National Electronics and Computer Technology Center, NECTEC.
Ideas, requests, problems regarding NTL? Send feedback