สวัสดีครับนักพัฒนาเว็บทุกท่าน! วันนี้เราจะมาเจาะลึกโลกของ XMLHttpRequest (XHR) ซึ่งเป็นเครื่องมืออันทรงพลังที่ได้ปฏิวัติวิธีการที่เราโต้ตอบกับเว็บ API และสร้างเว็บแอปพลิเคชันแบบไดนามิก เตรียมตัวให้พร้อม เพราะเรากำลังจะเริ่มต้นการเดินทางผ่านพื้นฐาน การประยุกต์ใช้งานจริง และเทคนิคขั้นสูงของ XHR
ก่อนอื่น มาเริ่มต้นด้วยภาพรวมโดยย่อ XMLHttpRequest คืออ็อบเจกต์ JavaScript ที่มีอยู่แล้ว ซึ่งช่วยให้คุณสามารถส่งคำขอ HTTP ไปยังเซิร์ฟเวอร์และจัดการการตอบสนองแบบอะซิงโครนัสได้ โดยไม่ต้องโหลดหน้าเว็บทั้งหมดซ้ำ ซึ่งหมายความว่าคุณสามารถดึงข้อมูล อัปเดตเนื้อหา และสร้างประสบการณ์การใช้งานที่ราบรื่น ทั้งหมดนี้ในขณะที่ทำให้แอปพลิเคชันของคุณตอบสนองและมีประสิทธิภาพ
ความสำคัญของ XHR ในการพัฒนาเว็บสมัยใหม่นั้นไม่สามารถกล่าวเกินจริงได้ ด้วยการเพิ่มขึ้นของ API และความต้องการข้อมูลแบบเรียลไทม์ที่เพิ่มขึ้น XHR ได้กลายเป็นส่วนประกอบพื้นฐานสำหรับการสร้างเว็บแอปพลิเคชันที่สมบูรณ์และโต้ตอบได้ ตั้งแต่ฟีดโซเชียลมีเดียไปจนถึงแพลตฟอร์มอีคอมเมิร์ซ XHR คือฮีโร่ที่ไม่ได้รับการยกย่องซึ่งขับเคลื่อนคุณสมบัติแบบไดนามิกที่เราคาดหวัง
ในบล็อกโพสต์นี้ เราจะครอบคลุมสิ่งต่อไปนี้:
- ทำความเข้าใจพื้นฐานของ XMLHttpRequest
- การเรียก API ด้วย XMLHttpRequest
- เทคนิคขั้นสูงใน XMLHttpRequest
- การใช้ Apidog เพื่อสร้างโค้ด XMLHttpRequest
ทำความเข้าใจพื้นฐานของ XMLHttpRequest
ก่อนที่เราจะเจาะลึกรายละเอียดของ XHR มาถอยหลังและทำความเข้าใจว่ามันคืออะไรและมันเข้ากับระบบนิเวศของเว็บ API ได้อย่างไร XMLHttpRequest เปิดตัวครั้งแรกโดย Microsoft ในช่วงปลายทศวรรษ 1990 ในฐานะอ็อบเจกต์ ActiveX และต่อมาได้รับการยอมรับจากเบราว์เซอร์อื่นๆ ในฐานะ API มาตรฐาน แม้จะมีชื่อ แต่ XHR สามารถจัดการรูปแบบข้อมูลนอกเหนือจาก XML รวมถึง JSON ซึ่งกลายเป็นมาตรฐานโดยพฤตินัยสำหรับการสื่อสาร API
ไวยากรณ์พื้นฐานของ XHR นั้นค่อนข้างตรงไปตรงมา คุณสร้างอินสแตนซ์ใหม่ของอ็อบเจกต์ XMLHttpRequest กำหนดค่าคำขอ (เมธอด, URL, ส่วนหัว ฯลฯ) กำหนดตัวจัดการเหตุการณ์เพื่อจัดการการตอบสนอง และสุดท้ายส่งคำขอ XHR มีเมธอดและคุณสมบัติหลายอย่างเพื่อโต้ตอบกับข้อมูลคำขอและการตอบสนอง เช่น open()
, send()
, onreadystatechange
และ status
การเรียก API ด้วย XMLHttpRequest
ตอนนี้เราได้ครอบคลุมพื้นฐานแล้ว มาเจาะลึกตัวอย่างการใช้งานจริงของการเรียก API ด้วย XMLHttpRequest เราจะแนะนำทีละขั้นตอนเกี่ยวกับวิธีการดึงข้อมูลจาก API ภายนอกและอัปเดต DOM ด้วยข้อมูลที่ดึงมา
ขั้นแรก เราจะสร้างอินสแตนซ์ใหม่ของอ็อบเจกต์ XMLHttpRequest และกำหนดค่าคำขอ:
const xhr = new XMLHttpRequest();
xhr.open('GET', 'https://api.example.com/data', true);
ถัดไป เราจะกำหนดตัวจัดการเหตุการณ์เพื่อจัดการการตอบสนองเมื่อพร้อม:
xhr.onreadystatechange = function() {
if (xhr.readyState === XMLHttpRequest.DONE && xhr.status === 200) {
// Handle the response data here
const data = JSON.parse(xhr.responseText);
// Update the DOM with the retrieved data
document.getElementById('result').innerHTML = data.message;
}
};
สุดท้าย เราจะส่งคำขอ:
xhr.send();
ในตัวอย่างนี้ เรากำลังส่งคำขอ GET
ไปยัง https://api.example.com/data
เมื่อการตอบสนองพร้อม เราจะแยกวิเคราะห์ข้อมูล JSON และอัปเดต DOM ด้วยคุณสมบัติ message
แม้ว่าตัวอย่างนี้จะตรงไปตรงมา แต่ก็มีข้อผิดพลาดทั่วไปที่ต้องระวัง เช่น การจัดการข้อผิดพลาด การตั้งค่าส่วนหัวที่เหมาะสม (เช่น สำหรับการตรวจสอบสิทธิ์) และการจัดการการแชร์ทรัพยากรข้ามต้นทาง (CORS) เมื่อส่งคำขอไปยังโดเมนภายนอก
เทคนิคขั้นสูงใน XMLHttpRequest
เมื่อคุณคุ้นเคยกับ XHR มากขึ้น คุณอาจพบสถานการณ์ที่ต้องใช้เทคนิคขั้นสูงมากขึ้น ในส่วนนี้ เราจะสำรวจการทำงานกับรูปแบบข้อมูลที่แตกต่างกัน การจัดการการดำเนินการแบบอะซิงโครนัสด้วยการเรียกกลับ และการจัดการการแชร์ทรัพยากรข้ามต้นทาง
การทำงานกับรูปแบบข้อมูลที่แตกต่างกัน:
แม้ว่า JSON จะเป็นรูปแบบข้อมูลทั่วไปที่ใช้ในการสื่อสาร API แต่คุณอาจพบสถานการณ์ที่คุณต้องจัดการ XML หรือรูปแบบอื่นๆ XHR มีเมธอดเช่น responseXML
และ overrideMimeType()
เพื่อทำงานกับรูปแบบข้อมูลที่แตกต่างกัน
การจัดการการดำเนินการแบบอะซิงโครนัสด้วยการเรียกกลับ:
XHR นั้นเป็นแบบอะซิงโครนัสโดยธรรมชาติ ซึ่งหมายความว่าโค้ดของคุณต้องจัดการการตอบสนองเมื่อพร้อม แทนที่จะบล็อกโฟลว์การดำเนินการ โดยทั่วไปจะทำได้โดยใช้การเรียกกลับ หรือใน JavaScript ที่ทันสมัยกว่านั้นคือ Promises และ async/await
การแชร์ทรัพยากรข้ามต้นทาง (CORS):
เมื่อส่งคำขอไปยังโดเมนภายนอก คุณอาจพบข้อจำกัด CORS ที่ป้องกันไม่ให้คำขอ XHR ของคุณสำเร็จ ในการเอาชนะปัญหานี้ คุณจะต้องกำหนดค่าเซิร์ฟเวอร์เพื่ออนุญาตคำขอข้ามต้นทาง หรือใช้เทคนิคทางเลือก เช่นพร็อกซีฝั่งเซิร์ฟเวอร์หรือ JSONP (สำหรับเบราว์เซอร์รุ่นเก่า)
ใช้ Apidog เพื่อสร้างโค้ด XMLHttpRequest
แม้ว่า XHR จะเป็นเครื่องมืออันทรงพลัง แต่การเขียนโค้ดตั้งแต่เริ่มต้นอาจใช้เวลานานและมีข้อผิดพลาดได้ง่าย โดยเฉพาะอย่างยิ่งสำหรับการโต้ตอบ API ที่ซับซ้อน นั่นคือที่มาของ Apidog ซึ่งเป็นเครื่องมือที่มีประโยชน์ซึ่งสามารถสร้างโค้ด XMLHttpRequest ให้คุณได้ ช่วยประหยัดเวลาในการพัฒนาอันมีค่า
นี่คือกระบวนการใช้ Apidog เพื่อสร้างโค้ด Axios:
ขั้นตอนที่ 1: เปิด Apidog และเลือกคำขอใหม่

ขั้นตอนที่ 2: ป้อน URL ของปลายทาง API ที่คุณต้องการส่งคำขอ,ป้อนส่วนหัวหรือพารามิเตอร์สตริงแบบสอบถามที่คุณต้องการรวมไว้ในคำขอ จากนั้นคลิก "Design" เพื่อสลับไปยังอินเทอร์เฟซการออกแบบของ Apidog

ขั้นตอนที่ 3: เลือก "Generate client code " เพื่อสร้างโค้ดของคุณ

ขั้นตอนที่ 4: คัดลอกโค้ด Axios ที่สร้างขึ้นและวางลงในโปรเจ็กต์ของคุณ

เมื่อใช้ Apidog คุณสามารถมุ่งเน้นไปที่การสร้างตรรกะของแอปพลิเคชันของคุณ แทนที่จะกังวลเกี่ยวกับรายละเอียดระดับต่ำของการสื่อสาร API มันเป็นตัวเปลี่ยนเกมสำหรับนักพัฒนาที่ต้องการปรับปรุงเวิร์กโฟลว์และเพิ่มประสิทธิภาพการทำงาน
บทสรุป
XMLHttpRequest เป็นรากฐานสำคัญของการพัฒนาเว็บสมัยใหม่ ช่วยให้นักพัฒนาสามารถสร้างเว็บแอปพลิเคชันที่สมบูรณ์และโต้ตอบได้ ซึ่งใช้ประโยชน์จากพลังของ API และข้อมูลแบบเรียลไทม์ ตั้งแต่การทำความเข้าใจพื้นฐานไปจนถึงการเรียนรู้เทคนิคขั้นสูง XHR เป็นเครื่องมืออเนกประสงค์ที่นักพัฒนาเว็บทุกคนควรมีอยู่ในคลังแสงของตน
ในขณะที่ XHR ได้ให้บริการเราเป็นอย่างดี อนาคตของการโต้ตอบ API ใน JavaScript อยู่กับ Fetch API และมาตรฐานใหม่กว่า เช่น HTTP/3 API ที่ทันสมัยเหล่านี้มีวิธีที่คล่องตัวและมีประสิทธิภาพมากขึ้นในการส่งคำขอเครือข่าย โดยแก้ไขข้อจำกัดและความซับซ้อนบางประการของ XHR
อย่างไรก็ตาม XHR ยังคงเป็นส่วนสำคัญของระบบนิเวศการพัฒนาเว็บ และการเรียนรู้ XHR จะไม่เพียงแต่ทำให้คุณเข้าใจวิธีการทำงานของเว็บอย่างลึกซึ้งยิ่งขึ้นเท่านั้น แต่ยังเตรียมคุณสำหรับ API รุ่นต่อไปอีกด้วย
แล้วคุณจะรออะไรอยู่? เริ่มฝึกฝนกับ XMLHttpRequest วันนี้ และอย่าลืมตรวจสอบ Apido ซึ่งเป็นอาวุธลับของคุณสำหรับการสร้างโค้ด XHR ที่มีประสิทธิภาพและปรับปรุงเวิร์กโฟลว์การรวม API ของคุณ
ขอให้สนุกกับการเขียนโค้ด!