Tuesday, April 6, 2010

Overview AJAX

AJAX คืออะไร

AJAX มาจาก Asynchronous JavaScript And XML ซึ่งถ้าจะให้แปลงเป็นคำพูดที่เข้าใจได้ง่ายก็คือ "เทคนิคการใช้ JavaScript และ XML ในการทำงานร่วมกันโดยไม่สนใจความสัมพันธ์ของช่วงเวลา หรือ ไม่ต่อเนื่อง นั่นเอง" โดยสามารถรับส่งข้อมูลจาก Server และสามารถแสดงผลโดนไม่ต้องโหลดหน้าจอใหม่ ซึ่งแน่นอน จะช่วยเพิ่มการตอบสนอง, ความรวดเร็ว, และการใช้งานโดยรวมต่อผู้ใช้ รวมไปถึงให้ความรู้สึกไฮโซกับ Web Application ด้วย


AJAX ไม่ใช่เทคโนโลยีใหม่
เพียงแต่เป็นการนำเทคโนโลยีหลายตัวมารวมกันเพื่อประสิทธิภาพที่ดีขึ้น


ดังนี้
  1. Standard-based presentation ใช้ XHTML และ CSS ใช้เพื่อการแสดงผล
  2. Dynamic display and interaction ใช้ DOM ( Document Object Model ) เพื่อใช้ในการแสดงข้อมูลที่มีการโต้ตอบกับผู้ใช้
  3. Data interchange and manipulation ใช้เป็นรูปแบบข้อมูลในการแลกเปลี่ยน สามารถใช้ได้หลายรูปแบบ เช่น XML หรือ JSON
  4. Asynchronous data retrieval โดยใช้ XMLHttpRequest เพื่อแลกเปลี่ยนข้อมูลกับ Web Server
  5. และสุดท้าย JavaScript เพื่อ Binding ทุกอย่างเข้าด้วยกัน

"แล้วไงล่ะ ทำไมเราถึงต้องเรียนรู้ AJAX
แล้วมันแก้ไขปัญหาอะไรได้"

ก็อย่างที่กล่าวไปแล้วในข้างต้น

  • AJAX สามารถทลายกำแพงขีดจำกัดของ Web Application ได้
  • AJAX สามารถทำให้ Web ธรรมดากลายมาเป็น Dynamic Web ที่ไฮโซได้ราวกับใช้ Flash
  • AJAX ทำให้ Gmail, Google Map, หรือแม้กระทั่ง Facebook ดังระเบิดยิ่งกว่าเสื้อแดง
  • AJAX เป็นหัวใจของแนวคิด Web 2.0

แล้วหลักการทำงานของมันล่ะ



รูปจาก http://www.javalobby.org/articles/ajax/ajax-fig2_small.png



รูปด้านบนจะเป็นการทำงานแบบ Classic Application โดยจะเห็นได้ว่า ปกติแล้วเมื่อผู้ใช้งานมี Request ข้อมูลจาก Server โดยใช้ HTTP ตัว Server เองนั้นจะประมวลผลและส่งผลลัพธ์กลับไปเป็น HTML วิธีนี้เรียกว่า Request and Response ซึ่งผู้ใช้งานต้องรอระหว่างที่ Server ประมวลผลอยู่ (Synchronous) เมื่อมาดูการทำงานแบบ Asynchronous โดย Server จะทำการส่งผลลัพธ์ให้ผู้ใช้ทันทีโดยไม่ต้องรอให้ประมวลผลเสร็จก่อน โดยจะดึงข้อมูลก็ต่อเมื่อผู้ใช้ต้องการเท่านั้น

แล้วมันมีจุดอ่อนมั้ยล่ะ

มีแน่นอน ทุกเทคโนโลยีย่อมมีจุดอ่อน ดังนั้นจึงมีเทคโนโลยีใหม่ขึ้นมาเพื่อแก้จุดอ่อนเหล่านั้น เช่นเดียวกับ AJAX ซึ่งกำลังรอเทคโนโลยีหรือเทคนิคใหม่มาแก้จุดอ่อนที่มี (เท่าที่นึกออก) ดังต่อไปนี้

  • ปัญหาการใช้งานเกี่ยวกับปุ่ม "Back" บน Web Browser และการทำ Favorites ซึ่งการทำแบบนี้บางครั้งจะได้ Page ที่ไม่ควรจะเป็น ดังนั้นกลุ่มผู้พัฒนาจึงได้คิดค้นเทคนิคการใช้ iFrame ที่มองไม่เห็นเพื่อสั่งให้ Web Browser เปลี่ยนแปลงรายการหน้าของปุ่มก่อนหน้านี้
  • ปัญหา JavaScript เนื่องจากว่า AJAX ใช้ JavaScript ซึ่งอาจทำงานแตกต่างกันขึ้นอยู่กับ Web Browser และถ้าต้องการให้เข้ากันได้ในหลาย Web Browser อาจต้องการการทดสอบและตรวจสอบความเข้ากันได้บน Web Browser ที่ต่างกัน ซึ่งบางครั้งอาจจำเป็นที่จะต้องเขียนโค้ดแยกเช่นบางส่วนสำหรับ Internet Exploror และสำหรับ Firefox เป็นต้น

เมื่อเทียบกับประโยชน์แล้วทุกท่านจะเห็นได้ว่า AJAX นั้นน่าใช้งานขนาดไหน ยิ่งในปัจจุบันมี AJAX Library มากมายหลายหลากให้เลือกใช้ ซึ่งในนั้นจะมี Feature ที่มีประโยชน์สำหรับ Software Developer อย่างพวกเราเยอะแยะเต็มไปหมด เช่น jQuery (อันนี้ตัวโปรด) ทำให้ AJAX น่าจะกลายมาเป็นเครื่องมือที่นักพัฒนา Web ทุกแขนงน่าจะต้องเรียนรู้ติดตัวเอาไว้ ส่วนวันนี้เมื่อยมือแล้ว ไปดีกว่า

No comments:

Post a Comment