การทำงานกับ AJAX (Working with AJAX)
— javascript — 1 min read
การทำงานกับ AJAX เป็นส่วนสำคัญของการพัฒนาแอปพลิเคชันเว็บในปัจจุบัน เป็นเทคนิคที่ช่วยให้เราสามารถโหลดข้อมูลและติดต่อกับเซิร์ฟเวอร์ได้อย่างมีประสิทธิภาพ โดยไม่ต้องรีเฟรชหน้าเว็บทั้งหมด ซึ่งสร้างประสบการณ์ใช้งานที่รวดเร็วและตอบสนองต่อผู้ใช้ได้ดีขึ้น
ตัวอย่างการใช้งาน AJAX ใน JavaScript:
// ส่งคำร้องขอ HTTP GET ด้วย XMLHttpRequestconst xhr = new XMLHttpRequest();xhr.open('GET', 'https://api.example.com/data', true);
xhr.onreadystatechange = function () { if (xhr.readyState === XMLHttpRequest.DONE) { if (xhr.status === 200) { const response = JSON.parse(xhr.responseText); console.log(response); } else { console.log('เกิดข้อผิดพลาดในการรับข้อมูล'); } }};
xhr.send();
// ส่งคำร้องขอ HTTP GET ด้วย Fetch APIfetch('https://api.example.com/data') .then(response => response.json()) .then(data => { console.log(data); }) .catch(error => { console.log('เกิดข้อผิดพลาดในการรับข้อมูล'); });`
ในตัวอย่างข้างต้น เราใช้ XMLHttpRequest เพื่อสร้างคำร้องขอ HTTP GET ไปยังเซิร์ฟเวอร์ เมื่อคำร้องขอสมบูรณ์แล้ว เราใช้ onreadystatechange
เพื่อตรวจสอบสถานะของคำร้องขอและรับข้อมูลที่ถูกส่งกลับมา หากสถานะคือ XMLHttpRequest.DONE
และสถานะการตอบสนองของเซิร์ฟเวอร์เป็น 200 (OK) เราจะแปลงข้อมูลที่ได้รับกลับมาในรูปแบบ JSON และทำการประมวลผลต่อไป
ในบริบทของ Fetch API เราใช้ฟังก์ชัน fetch()
เพื่อส่งคำร้องขอ HTTP GET และเรียกใช้เมธอด .json()
เพื่อแปลงข้อมูลที่ได้รับกลับมาในรูปแบบ JSON เราสามารถเรียกใช้ .then()
เพื่อดำเนินการต่อกับข้อมูลที่ได้รับ และ .catch()
เพื่อจัดการข้อผิดพลาดที่เกิดขึ้น
การใช้งาน AJAX ช่วยให้เราสามารถโหลดข้อมูลแบบแบ่งส่วนและอัพเดตข้อมูลในเว็บไซต์ได้อย่างมีประสิทธิภาพ นอกจากนี้ยังสามารถนำข้อมูลที่ได้รับจาก AJAX มาใช้งานในการแสดงผลหรือประมวลผลต่อไปได้อีกด้วย
การใช้งาน AJAX ยังมีความสำคัญในการจัดการกับการส่งข้อมูลไปยังเซิร์ฟเวอร์เพื่อทำการบันทึกหรือปรับเปลี่ยนข้อมูลบนเซิร์ฟเวอร์ด้วยเช่นกัน นี่คือตัวอย่างการใช้งาน AJAX เพื่อส่งข้อมูลไปยังเซิร์ฟเวอร์:
// ส่งคำร้องขอ HTTP POST ด้วย XMLHttpRequestconst xhr = new XMLHttpRequest();xhr.open('POST', 'https://api.example.com/save-data', true);xhr.setRequestHeader('Content-Type', 'application/json');
const data = { name: 'John Doe', email: 'johndoe@example.com'};
xhr.onreadystatechange = function () { if (xhr.readyState === XMLHttpRequest.DONE) { if (xhr.status === 200) { console.log('บันทึกข้อมูลสำเร็จ'); } else { console.log('เกิดข้อผิดพลาดในการบันทึกข้อมูล'); } }};
xhr.send(JSON.stringify(data));
// ส่งคำร้องขอ HTTP POST ด้วย Fetch APIconst data = { name: 'John Doe', email: 'johndoe@example.com'};
fetch('https://api.example.com/save-data', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify(data)}) .then(response => { if (response.ok) { console.log('บันทึกข้อมูลสำเร็จ'); } else { console.log('เกิดข้อผิดพลาดในการบันทึกข้อมูล'); } }) .catch(error => { console.log('เกิดข้อผิดพลาดในการส่งคำร้องขอ'); });`
ในตัวอย่างข้างต้น เราใช้ XMLHttpRequest และ Fetch API เพื่อสร้างคำร้องขอ HTTP POST และส่งข้อมูลไปยังเซิร์ฟเวอร์ เราต้องกำหนดส่วนหัว Content-Type
เป็น application/json
เพื่อระบุว่าข้อมูลที่ส่งไปเป็นรูปแบบ JSON ในการส่งข้อมูล เราใช้ JSON.stringify()
เพื่อแปลงข้อมูลให้เป็นสตริง JSON และส่งไปพร้อมกับคำร้องขอ
หลังจากส่งคำร้องขอไปยังเซิร์ฟเวอร์แล้ว เราตรวจสอบสถานะและการตอบสนองของเซิร์ฟเวอร์ หากสถานะคือ 200 (OK) เราก็สามารถรับรองว่าข้อมูลถูกบันทึกสำเร็จ แต่ถ้าไม่ใช่เราจะแสดงข้อความแสดงข้อผิดพลาดที่เกิดขึ้น
การใช้งาน AJAX ช่วยให้เราสามารถสื่อสารกับเซิร์ฟเวอร์และจัดการข้อมูลได้อย่างมีประสิทธิภาพ มันเป็นเครื่องมือที่สำคัญสำหรับการพัฒนาแอปพลิเคชันเว็บที่ต้องการโหลดข้อมูลแบบแบ่งส่วน อัปเดตข้อมูลและปรับปรุงข้อมูลที่ได้รับจากเซิร์ฟเวอร์ และการทำงานร่วมกับเซิร์ฟเวอร์โดยไม่ต้องรีเฟรชหน้าเว็บ