การเรียนรู้ XMLHttpRequest ใน JavaScript ปี 2025

เจาะลึก XMLHttpRequest (XHR) ใน JavaScript: พื้นฐาน, การใช้งานจริง, เทคนิคขั้นสูง, และ Apido สำหรับ API

อาชว์

อาชว์

4 June 2025

การเรียนรู้ XMLHttpRequest ใน JavaScript ปี 2025

สวัสดีครับนักพัฒนาเว็บทุกท่าน! วันนี้เราจะมาเจาะลึกโลกของ XMLHttpRequest (XHR) ซึ่งเป็นเครื่องมืออันทรงพลังที่ได้ปฏิวัติวิธีการที่เราโต้ตอบกับเว็บ API และสร้างเว็บแอปพลิเคชันแบบไดนามิก เตรียมตัวให้พร้อม เพราะเรากำลังจะเริ่มต้นการเดินทางผ่านพื้นฐาน การประยุกต์ใช้งานจริง และเทคนิคขั้นสูงของ XHR

ก่อนอื่น มาเริ่มต้นด้วยภาพรวมโดยย่อ XMLHttpRequest คืออ็อบเจกต์ JavaScript ที่มีอยู่แล้ว ซึ่งช่วยให้คุณสามารถส่งคำขอ HTTP ไปยังเซิร์ฟเวอร์และจัดการการตอบสนองแบบอะซิงโครนัสได้ โดยไม่ต้องโหลดหน้าเว็บทั้งหมดซ้ำ ซึ่งหมายความว่าคุณสามารถดึงข้อมูล อัปเดตเนื้อหา และสร้างประสบการณ์การใช้งานที่ราบรื่น ทั้งหมดนี้ในขณะที่ทำให้แอปพลิเคชันของคุณตอบสนองและมีประสิทธิภาพ

ความสำคัญของ XHR ในการพัฒนาเว็บสมัยใหม่นั้นไม่สามารถกล่าวเกินจริงได้ ด้วยการเพิ่มขึ้นของ API และความต้องการข้อมูลแบบเรียลไทม์ที่เพิ่มขึ้น XHR ได้กลายเป็นส่วนประกอบพื้นฐานสำหรับการสร้างเว็บแอปพลิเคชันที่สมบูรณ์และโต้ตอบได้ ตั้งแต่ฟีดโซเชียลมีเดียไปจนถึงแพลตฟอร์มอีคอมเมิร์ซ XHR คือฮีโร่ที่ไม่ได้รับการยกย่องซึ่งขับเคลื่อนคุณสมบัติแบบไดนามิกที่เราคาดหวัง

ในบล็อกโพสต์นี้ เราจะครอบคลุมสิ่งต่อไปนี้:

  1. ทำความเข้าใจพื้นฐานของ XMLHttpRequest
  2. การเรียก API ด้วย XMLHttpRequest
  3. เทคนิคขั้นสูงใน XMLHttpRequest
  4. การใช้ 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 ให้คุณได้ ช่วยประหยัดเวลาในการพัฒนาอันมีค่า

button

นี่คือกระบวนการใช้ 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 ของคุณ

ขอให้สนุกกับการเขียนโค้ด!

Explore more

วิธีเรียกใช้ Mistral Small 3.1 ในเครื่องของคุณเองโดยใช้ Ollama: คู่มือทีละขั้นตอน

วิธีเรียกใช้ Mistral Small 3.1 ในเครื่องของคุณเองโดยใช้ Ollama: คู่มือทีละขั้นตอน

เรียนรู้วิธีรัน Mistral Small 3.1 (AI โอเพนซอร์ส) บนเครื่องคุณเองด้วย Ollama คู่มือนี้ง่าย ครอบคลุมการติดตั้ง, การใช้งาน, และเคล็ดลับ

19 March 2025

NDJSON 101: การสตรีมผ่าน HTTP Endpoints

NDJSON 101: การสตรีมผ่าน HTTP Endpoints

ค้นพบ NDJSON: สตรีมข้อมูลผ่าน HTTP อย่างมีประสิทธิภาพ! คู่มือนี้อธิบายพื้นฐาน, ข้อดีเหนือ JSON, และวิธี Apidog ช่วยทดสอบ/แก้จุดบกพร่อง endpoint สตรีมมิ่ง

18 March 2025

วิธีนำเข้า/ส่งออกข้อมูลคอลเลกชันใน Postman

วิธีนำเข้า/ส่งออกข้อมูลคอลเลกชันใน Postman

ในบทความนี้ เราจะคุยเรื่องนำเข้า/ส่งออก Postman และวิธีแก้ปัญหาที่ยืดหยุ่นกว่า ไม่จำกัดจำนวนครั้ง

18 March 2025

ฝึกการออกแบบ API แบบ Design-first ใน Apidog

ค้นพบวิธีที่ง่ายขึ้นในการสร้างและใช้ API