60 คำถามและคำตอบสัมภาษณ์งาน AJAX ยอดนิยม (ปี 2026)

คำถามและคำตอบสัมภาษณ์เกี่ยวกับ AJAX

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

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

👉 ดาวน์โหลดไฟล์ PDF ฟรี: คำถามและคำตอบสำหรับการสัมภาษณ์งานด้าน AJAX

คำถามและคำตอบสัมภาษณ์งานด้าน AJAX ที่สำคัญที่สุด

1) AJAX คืออะไร และทำงานอย่างไร?

AJAX (อะซิงโครนัส) JavaAJAX (Script และ XML) เป็นเทคนิคการพัฒนาเว็บที่ช่วยให้เว็บเพจสามารถส่งและรับข้อมูลจากเซิร์ฟเวอร์แบบอะซิงโครนัส โดยไม่ต้องโหลดหน้าเว็บใหม่ทั้งหมด ทำให้สามารถอัปเดตส่วนต่างๆ ของเว็บเพจได้อย่างไดนามิก สร้างประสบการณ์การใช้งานที่ราบรื่นยิ่งขึ้น AJAX ทำงานโดยใช้การผสมผสานระหว่าง... Javaประกอบด้วยสคริปต์, อ็อบเจ็กต์ XMLHttpRequest (หรือ Fetch API) และสคริปต์ฝั่งเซิร์ฟเวอร์ เบราว์เซอร์ส่งคำขอเบื้องหลังไปยังเซิร์ฟเวอร์ เซิร์ฟเวอร์ประมวลผลข้อมูลและส่งการตอบกลับ ซึ่ง Javaจากนั้นสคริปต์จะใช้เพื่ออัปเดต DOM

ตัวอย่าง: ส่งแบบฟอร์มล็อกอินแล้วแสดงข้อความแสดงข้อผิดพลาดโดยไม่ต้องรีเฟรชหน้าเว็บ


2) เทคโนโลยีหลักที่เกี่ยวข้องกับ AJAX มีอะไรบ้าง?

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

เทคโนโลยี จุดมุ่งหมาย
HTML/XHTML ใช้สำหรับโครงสร้างหน้าเว็บ
CSS จัดการเลเยอร์การนำเสนอ
Javaต้นฉบับ จัดการเนื้อหาแบบไดนามิกและการโต้ตอบของผู้ใช้
DOM ช่วยให้สามารถแก้ไของค์ประกอบของหน้าเว็บได้แบบไดนามิก
XMLHttpRequest / Fetch API ส่งคำขอแบบอะซิงโครนัสไปยังเซิร์ฟเวอร์
XML/JSON จัดรูปแบบข้อมูลที่แลกเปลี่ยนระหว่างไคลเอ็นต์และเซิร์ฟเวอร์

ตัวอย่าง: ในแอปพลิเคชันเว็บสมัยใหม่ JSON ได้เข้ามาแทนที่ XML ในการแลกเปลี่ยนข้อมูลเป็นส่วนใหญ่ เนื่องจากความเรียบง่ายและใช้งานง่าย Javaต้นฉบับ


3) AJAX แตกต่างจากการร้องขอเว็บแบบดั้งเดิมอย่างไร?

การร้องขอเว็บแบบดั้งเดิมจะโหลดหน้าเว็บใหม่ทั้งหมดทุกครั้งที่ไคลเอ็นต์ติดต่อกับเซิร์ฟเวอร์ ในทางกลับกัน AJAX จะอัปเดตเฉพาะส่วนที่จำเป็นของหน้าเว็บแบบอะซิงโครนัสเท่านั้น

ลักษณะ คำขอแบบดั้งเดิม คำขอ AJAX
โหลดหน้าเว็บใหม่ ใช่ ไม่
ประสบการณ์ของผู้ใช้ ช้าลง เร็วขึ้นและราบรื่นขึ้น
การถ่ายโอนข้อมูล หน้าเว็บทั้งหมด เฉพาะข้อมูลที่จำเป็นเท่านั้น
เทคโนโลยี แบบฟอร์ม HTML, การรีเฟรชหน้าเว็บแบบเต็มหน้าจอ XMLHttpRequest, Javaต้นฉบับ
ตัวอย่าง การส่งแบบฟอร์มติดต่อ คำแนะนำการค้นหาแบบเรียลไทม์

ตัวอย่าง: เมื่อพิมพ์ในช่องค้นหาของ Google คำแนะนำจะปรากฏขึ้นทันทีผ่าน AJAX โดยไม่ต้องรีเฟรชหน้าเว็บ


4) อธิบายวงจรชีวิตของคำขอ AJAX

วงจรชีวิตของคำขอ AJAX ประกอบด้วยขั้นตอนต่อไปนี้:

  1. การเริ่มต้น: A Javaฟังก์ชันสคริปต์จะสร้างอ็อบเจ็กต์ XMLHttpRequest ขึ้นมา
  2. การกำหนดค่า: การขอ open() เมธอดจะกำหนดประเภทของคำขอ (GET/POST), URL และว่าเป็นแบบอะซิงโครนัสหรือไม่
  3. การส่งคำขอ: การขอ send() เมธอดนี้จะส่งคำขอไปยังเซิร์ฟเวอร์
  4. กำลังรอการตอบกลับ: เบราว์เซอร์ยังคงทำงานต่อไปในขณะที่กำลังรอ
  5. กำลังรับการตอบกลับ: เซิร์ฟเวอร์จะส่งข้อมูลกลับมา (โดยปกติจะเป็น JSON หรือ XML)
  6. กำลังประมวลผลการตอบสนอง: การขอ Javaฟังก์ชันเรียกกลับของสคริปต์จะอ่านค่า responseText และอัปเดตหน้าเว็บให้สอดคล้องกัน

วงจรชีวิตนี้ช่วยให้การสื่อสารแบบอะซิงโครนัสเป็นไปอย่างราบรื่นโดยไม่ขัดจังหวะการโต้ตอบของผู้ใช้


5) การใช้ AJAX มีข้อดีและข้อเสียอย่างไรบ้าง?

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

ตัวอย่าง: แอปพลิเคชันหน้าเดียว (SPAs) อาศัย AJAX สำหรับการอัปเดตแบบเรียลไทม์ แต่การจัดการข้อผิดพลาดที่ไม่ดีอาจนำไปสู่ประสบการณ์การใช้งานที่ไม่สม่ำเสมอ


6) ความแตกต่างระหว่างคำขอ AJAX แบบซิงโครนัสและแบบอะซิงโครนัสคืออะไร?

A คำขอแบบซิงโครนัส ขัดขวางการดำเนินการของขั้นตอนถัดไป Javaสคริปต์จะทำงานไปเรื่อยๆ จนกว่าจะได้รับการตอบกลับจากเซิร์ฟเวอร์ คำขอแบบอะซิงโครนัสอย่างไรก็ตาม ฟังก์ชันนี้อนุญาตให้โค้ดส่วนอื่นทำงานได้ในขณะที่รอการตอบกลับ

แง่มุม Syncมีเกียรติ ไม่ตรงกัน
การปิดกั้น ใช่ ไม่
ประสิทธิภาพ ช้าลง ได้เร็วขึ้น
ประสบการณ์ของผู้ใช้ คุณภาพแย่ (เบราว์เซอร์ค้าง) เรียบ
การใช้ หาได้ยากในแอปพลิเคชันสมัยใหม่ การปฏิบัติทั่วไป

ตัวอย่าง: แอปพลิเคชันสมัยใหม่ใช้คำขอแบบอะซิงโครนัส (true in xhr.open()เพื่อให้แน่ใจว่าส่วนติดต่อผู้ใช้ยังคงตอบสนองได้ดี


7) คุณจัดการกับข้อผิดพลาดในคำขอ AJAX อย่างไร?

การจัดการข้อผิดพลาดใน AJAX เป็นสิ่งสำคัญเพื่อให้มั่นใจได้ถึงความน่าเชื่อถือและประสบการณ์การใช้งานที่ดี คุณสามารถจัดการข้อผิดพลาดได้โดยใช้ onerror เหตุการณ์ การตรวจสอบรหัสสถานะ หรือ .catch() วิธีการใน Fetch API

ตัวอย่างการใช้งาน XMLHttpRequest:

xhr.onerror = function() {
  alert("An error occurred while processing the request.");
};

ตัวอย่างการใช้งาน Fetch API:

fetch('/api/data')
  .then(response => {
    if (!response.ok) throw new Error('Network error');
    return response.json();
  })
  .catch(error => console.error(error));

การจัดการข้อผิดพลาดที่เหมาะสมควรมีตัวเลือกสำรอง เช่น กลไกการลองใหม่ หรือการแจ้งเตือนที่เป็นมิตรกับผู้ใช้


8) ปัจจุบันมีเฟรมเวิร์กหรือไลบรารี AJAX ใดบ้างที่นิยมใช้กัน?

นักพัฒนาสมัยใหม่มักใช้เฟรมเวิร์กหรือไลบรารีที่ช่วยลดความซับซ้อนในการใช้งาน AJAX

ห้องสมุด/กรอบการทำงาน Key Features
jQuery ช่วยให้การเรียกใช้ AJAX ง่ายขึ้นด้วย $.ajax() และวิธีการเขียนย่อ
Axios ไคลเอ็นต์ HTTP ที่ใช้ Promise สำหรับเบราว์เซอร์และ Node.js
เรียก API พื้นเมือง Javaสคริปต์ API สำหรับการดำเนินการแบบ AJAX
แองกูลาร์ HTTPClient บริการในตัวสำหรับการจัดการคำขอ HTTP
รีแอคท์ คิวรี จัดการสถานะเซิร์ฟเวอร์และการดึงข้อมูลแบบอะซิงโครนัส

ตัวอย่าง: Axios เป็นที่นิยมสำหรับแอปพลิเคชันที่ซับซ้อน เนื่องจากรองรับการดักจับคำขอ การยกเลิกคำขอ และการกำหนดค่าแบบทั่วโลก


9) AJAX สามารถปรับปรุงประสิทธิภาพของเว็บแอปพลิเคชันได้อย่างไร?

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

ตัวอย่าง: แพลตฟอร์มโซเชียลมีเดียอย่าง Facebook หรือ Twitter ใช้ AJAX ในการโหลดโพสต์ใหม่แบบไดนามิกโดยไม่ต้องรีเฟรชฟีดทั้งหมด


10) รูปแบบข้อมูลใดบ้างที่สามารถใช้กับ AJAX ได้ และรูปแบบใดเป็นที่นิยมมากกว่า?

AJAX สามารถจัดการกับรูปแบบข้อมูลได้หลายรูปแบบ เช่น XML, JSON, HTMLหรือ ข้อความธรรมดา. อย่างไรก็ตาม เจสัน (Javaสัญกรณ์วัตถุสคริปต์) เป็นรูปแบบที่นิยมใช้เนื่องจากมีน้ำหนักเบา ประมวลผลง่าย และเข้ากันได้โดยตรงกับ Javaต้นฉบับ

รูปแบบ Descriptไอออน ต้องการใช่หรือไม่?
XML มีโครงสร้างและละเอียดถี่ถ้วน ไม่
JSON น้ำหนักเบาและประมวลผลได้ง่าย ใช่
HTML ใช้สำหรับการอัปเดตหน้าเว็บบางส่วน บางครั้ง
ข้อความธรรมดา เหมาะสำหรับการตอบสนองขนาดเล็ก บางครั้งบางคราว

ตัวอย่าง:

fetch('/user')
  .then(res => res.json())
  .then(data => console.log(data.name));

11) ค่า readyState ต่างๆ ใน ​​AJAX มีอะไรบ้าง และแต่ละค่ามีความหมายอย่างไร?

การขอ readyState คุณสมบัติของ XMLHttpRequest อ็อบเจ็กต์นี้กำหนดสถานะปัจจุบันของคำขอ AJAX โดยมีค่าตั้งแต่ 0 ถึง 4 ซึ่งแต่ละค่าแสดงถึงขั้นตอนเฉพาะในวงจรชีวิตของคำขอ

ความคุ้มค่า สถานะ Descriptไอออน
0 ยังไม่ได้ส่ง คำขอไม่ได้รับการเริ่มต้น
1 เปิดแล้ว การเชื่อมต่อเซิร์ฟเวอร์สำเร็จแล้ว
2 ส่วนหัวที่ได้รับ ได้รับคำขอและมีส่วนหัวพร้อมใช้งานแล้ว
3 กำลังโหลด กำลังดาวน์โหลดข้อมูลการตอบกลับ
4 DONE คำขอได้รับการดำเนินการเรียบร้อยแล้ว

ตัวอย่าง:

xhr.onreadystatechange = function() {
  if (xhr.readyState === 4 && xhr.status === 200) {
    console.log(xhr.responseText);
  }
};

การเข้าใจสถานะเหล่านี้ช่วยให้นักพัฒนาสามารถจัดการการตอบสนองได้อย่างมีประสิทธิภาพและหลีกเลี่ยงสภาวะการแข่งขัน (race condition) ในการเขียนโปรแกรมแบบอะซิงโครนัส


12) คุณจะป้องกันไม่ให้เบราว์เซอร์แคชการตอบสนองของ AJAX ได้อย่างไร?

การแคชข้อมูลอาจทำให้ข้อมูลที่แสดงผลล้าสมัย เพื่อป้องกันปัญหานี้ นักพัฒนาสามารถทำได้ดังนี้:

  1. เพิ่มพารามิเตอร์การค้นหาแบบสุ่ม (เช่น เวลา) ต่อท้าย URL ของคำขอ
  2. ตั้งค่าส่วนหัว HTTP เช่น Cache-Control: no-cache or Pragma: no-cache.
  3. กำหนดค่าการตั้งค่า AJAX ใน jQuery หรือ Fetch เพื่อปิดใช้งานการแคช

ตัวอย่าง:

$.ajax({
  url: '/data?nocache=' + new Date().getTime(),
  cache: false
});

การปิดใช้งานแคชมีความสำคัญอย่างยิ่ง โดยเฉพาะอย่างยิ่งเมื่อดึงข้อมูลที่เปลี่ยนแปลงบ่อย เช่น ราคาหุ้น การแจ้งเตือน หรือข้อความแชท


13) ข้อกังวลด้านความปลอดภัยที่พบบ่อยเกี่ยวกับ AJAX มีอะไรบ้าง และจะลดผลกระทบเหล่านั้นได้อย่างไร?

หากนำ AJAX ไปใช้อย่างไม่ถูกต้อง อาจก่อให้เกิดช่องโหว่ด้านความปลอดภัย ความเสี่ยงที่สำคัญ ได้แก่:

การคุกคาม Descriptไอออน การบรรเทา
การเขียนสคริปต์ข้ามไซต์ (XSS) สคริปต์ที่ถูกแทรกเข้าไปในข้อมูล การตรวจสอบความถูกต้องของข้อมูลขาเข้าและการเข้ารหัสข้อมูลขาออก
การปลอมแปลงคำขอข้ามไซต์ (CSRF) คำขอที่ไม่ได้รับอนุญาต ใช้โทเค็นป้องกัน CSRF
การเปิดเผยข้อมูล ข้อมูลที่ละเอียดอ่อนในคำตอบ HTTPS และการตรวจสอบสิทธิ์
การโจรกรรม JSON การเข้าถึงข้อมูล JSON โดยไม่ได้รับอนุญาต นำเสนอ JSON ในรูปแบบอ็อบเจ็กต์ที่ถูกต้อง

ตัวอย่าง: การเพิ่มโทเค็น CSRF ลงในส่วนหัวของคำขอ AJAX ทุกครั้งจะช่วยป้องกันเว็บไซต์ที่เป็นอันตรายจากการส่งคำขอที่ไม่ได้รับอนุญาตในนามของผู้ใช้


14) ความแตกต่างหลักระหว่างเมธอด GET และ POST ในการร้องขอ AJAX คืออะไร?

ปัจจัย GET POST
ข้อมูล Transmission ส่งใน URL ส่งในเนื้อหาคำขอ
ขีดจำกัดขนาดข้อมูล จำกัด (~2000 ตัวอักษร) ไม่มีข้อจำกัดที่เข้มงวด
⁠ความปลอดภัย Less ปลอดภัย ปลอดภัยมากขึ้น
แคช เป็นไปได้ ไม่ได้แคชไว้
การใช้ การดึงข้อมูล ส่งหรืออัปเดตข้อมูล

ตัวอย่าง:

  • ใช้ GET สำหรับการดึงข้อมูลแบบคงที่ เช่น รายละเอียดผู้ใช้
  • ใช้ POST สำหรับการส่งแบบฟอร์มหรืออัปโหลดไฟล์

ใน AJAX การเลือกใช้ GET หรือ POST ขึ้นอยู่กับลักษณะของข้อมูลและข้อกำหนดในการประมวลผลของเซิร์ฟเวอร์


15) JSONP คืออะไร และควรใช้เมื่อใด?

JSONP (JSON ที่มีการเว้นช่องว่าง) เป็นเทคนิคที่ใช้เพื่อเอาชนะ นโยบายแหล่งกำเนิดเดียวกัน ข้อจำกัดของ AJAX ในการโหลดข้อมูลผ่านทาง <script> ใช้แท็กแทน XMLHttpRequest ซึ่งช่วยให้สามารถส่งคำขอข้ามโดเมนได้ในสภาพแวดล้อมที่ไม่รองรับ CORS

ตัวอย่าง:

<script src="https://api.example.com/data?callback=myCallback"></script>

อย่างไรก็ตาม JSONP รองรับเฉพาะคำขอ GET เท่านั้น และมีความเสี่ยงด้านความปลอดภัยอย่างมาก ในปัจจุบัน CORS (การแบ่งปันทรัพยากรข้ามแหล่งกำเนิด) เป็นวิธีการที่เหมาะสมและปลอดภัยกว่าสำหรับการจัดการคำขอ AJAX ข้ามโดเมน


16) CORS มีบทบาทอย่างไรในคำขอ AJAX?

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

เซิร์ฟเวอร์ต้องใส่ส่วนหัวดังต่อไปนี้:

Access-Control-Allow-Origin: https://example.com
Access-Control-Allow-Methods: GET, POST
Access-Control-Allow-Headers: Content-Type

ตัวอย่าง: กำลังดึงข้อมูลจาก api.github.com การส่งคำขอผ่าน AJAX จำเป็นต้องมีส่วนหัว CORS จากเซิร์ฟเวอร์ GitHub เพื่ออนุญาตการร้องขอ

CORS ช่วยเพิ่มความยืดหยุ่นในขณะที่ยังคงควบคุมแหล่งที่มาและวิธีการ HTTP ที่อนุญาตได้อย่างเข้มงวด


17) AJAX ทำงานร่วมกับเว็บเซอร์วิส RESTful ได้อย่างไร?

AJAX ทำงานร่วมกับ REST API ได้อย่างราบรื่นโดยการส่งคำขอ HTTP (GET, POST, PUT, DELETE) และจัดการการตอบกลับ JSON แบบอะซิงโครนัส REST API เหมาะสำหรับ AJAX เพราะไม่มีสถานะและมีน้ำหนักเบา

ตัวอย่าง:

fetch('/api/users', {
  method: 'POST',
  body: JSON.stringify({ name: 'John' }),
  headers: { 'Content-Type': 'application/json' }
});

AJAX + REST ช่วยให้แอปพลิเคชันหน้าเดียว (SPA) สามารถอัปเดตเนื้อหาแบบไดนามิกได้โดยไม่ต้องโหลดหน้าเว็บใหม่ทั้งหมด เช่น การเพิ่มระเบียนใหม่ลงในตารางได้ทันทีหลังจากผู้ใช้ส่งข้อมูล


18) ความแตกต่างที่สำคัญระหว่าง AJAX ที่ใช้ XMLHttpRequest และ Fetch API คืออะไร?

ลักษณะ XMLHttpRequest เรียก API
วากยสัมพันธ์ ละเอียด เรียบง่ายกว่าและยึดหลักคำมั่นสัญญา
จัดการข้อผิดพลาด อิงตามการเรียกกลับ .then() / .catch()
ที่พริ้ว ไม่ได้รับการสนับสนุน ที่สนับสนุน
การจัดการ JSON ต้องทำการแยกวิเคราะห์ด้วยตนเอง สร้างขึ้นโดย .json()
รองรับเบราว์เซอร์ เก่าแก่และเป็นสากล เบราว์เซอร์สมัยใหม่

ตัวอย่าง (การดึงข้อมูล):

fetch('/api/data')
  .then(res => res.json())
  .then(data => console.log(data));

Fetch API เป็นทางเลือกที่ทันสมัยและสะอาดกว่า XMLHttpRequest ซึ่งใช้กันอย่างแพร่หลายในสภาพแวดล้อม ES6 ขึ้นไป


19) คุณจะดีบักการเรียกใช้ AJAX ในเบราว์เซอร์ได้อย่างไร?

การดีบัก AJAX สามารถทำได้โดยใช้เครื่องมือสำหรับนักพัฒนาที่มีอยู่ในเบราว์เซอร์หลักทุกตัว

วิธีการรวมถึง:

  1. แท็บเครือข่าย: ตรวจสอบ URL ของคำขอ รหัสสถานะ และข้อมูลการตอบกลับ
  2. บันทึกคอนโซล: ใช้ console.log() สำหรับการติดตามตัวแปรและการตอบสนอง
  3. จุดพัก: หยุดการทำงานชั่วคราวใน Javaสคริปต์สำหรับวิเคราะห์สถานะ
  4. ตัวกรอง XHR: ใน Chrome DevTools ให้กรองเฉพาะ XHR or Fetch การร้องขอ
  5. ตัวรับฟังข้อผิดพลาด: เพิ่ม onerror or .catch() เพื่อการติดตามหาข้อผิดพลาด

ตัวอย่าง:

fetch('/data')
  .then(response => response.json())
  .catch(error => console.error('AJAX Error:', error));

เทคนิคเหล่านี้ช่วยให้การแก้ไขปัญหาเครือข่ายและตรรกะเป็นไปอย่างราบรื่นยิ่งขึ้น


20) สามารถใช้ AJAX เพื่ออัปเดตเฉพาะบางส่วนของเว็บเพจได้อย่างไร?

AJAX สามารถอัปเดตองค์ประกอบเฉพาะแบบไดนามิกได้โดยไม่ต้องโหลดเว็บเพจใหม่ทั้งหมด หลังจากได้รับคำตอบจากเซิร์ฟเวอร์แล้ว Javaสคริปต์จะจัดการ DOM เพื่อแทรกหรือแทนที่เนื้อหา

ตัวอย่าง:

fetch('/latest-news')
  .then(res => res.text())
  .then(html => document.getElementById('news-section').innerHTML = html);

วิธีการนี้ใช้สำหรับส่วนเนื้อหาแบบไดนามิก เช่น การแจ้งเตือน ราคาผลิตภัณฑ์ และส่วนแสดงความคิดเห็น ช่วยเพิ่มประสิทธิภาพโดยการรีเฟรชเฉพาะส่วนประกอบที่จำเป็นเท่านั้น ไม่ใช่ทั้งหน้าเว็บ


21) AJAX ถูกนำไปใช้ใน jQuery อย่างไร และมีเมธอดใดบ้างที่สามารถใช้งานได้?

jQuery ช่วยลดความซับซ้อนของการเรียกใช้ AJAX โดยการจัดเตรียมวิธีการย่อหลายวิธีที่ช่วยลดความซับซ้อนของวิธีการดั้งเดิม XMLHttpRequest วัตถุ วิธีที่ใช้กันทั่วไป ได้แก่:

วิธี Descriptไอออน
$.ajax() คำขอ AJAX ที่สามารถกำหนดค่าได้อย่างสมบูรณ์
$.get() ส่งคำขอ GET
$.post() ส่งคำขอ POST
$.getJSON() ดึงข้อมูล JSON
load() โหลดเนื้อหา HTML ลงในองค์ประกอบโดยตรง

ตัวอย่าง:

$.get('/user/info', function(data) {
  $('#user-details').html(data);
});

jQuery AJAX API มีคุณสมบัติเด่น เช่น การแยกวิเคราะห์ JSON อัตโนมัติ การควบคุมการแคช การจัดการเวลาหมดอายุ และการเรียกใช้ฟังก์ชันเมื่อเกิดข้อผิดพลาด ทำให้เป็นตัวเลือกที่เหมาะสมสำหรับระบบเก่าและการผสานรวมอย่างรวดเร็ว


22) จะปรับปรุงประสิทธิภาพของคำขอ AJAX ในแอปพลิเคชันขนาดใหญ่ได้อย่างไร?

การเพิ่มประสิทธิภาพการทำงานของ AJAX นั้นเกี่ยวข้องกับทั้งสองด้าน front-end และ ฝั่งเซิร์ฟเวอร์ กลยุทธ์

เทคนิคสำคัญ:

  1. ลดจำนวนการเรียกใช้เซิร์ฟเวอร์ให้น้อยที่สุด – รวมคำขอหลายรายการเข้าเป็นคำขอเดียว
  2. ใช้การแคช – บันทึกการตอบสนองที่ใช้บ่อยลงในหน่วยความจำภายในเครื่อง
  3. บีบอัดการตอบกลับ – เปิดใช้งานการบีบอัด GZIP บนเซิร์ฟเวอร์
  4. ใช้งานระบบแบ่งหน้า (pagination) – โหลดข้อมูลเมื่อต้องการใช้งาน (การโหลดแบบไม่ทันที)
  5. ลดการตอบสนองการป้อนข้อมูลของผู้ใช้ – จำกัดความถี่ในการเรียกใช้ AJAX (เช่น ในการค้นหาแบบเรียลไทม์)
  6. ใช้ CDN – ให้บริการสคริปต์ AJAX แบบคงที่ได้อย่างรวดเร็ว

ตัวอย่าง: ในฟังก์ชันการค้นหา ให้ตั้งค่าดีบาวน์ด 300 มิลลิวินาที เพื่อป้องกันการส่งคำขอ AJAX หลายครั้งในระหว่างการพิมพ์


23) จะยกเลิกคำขอ AJAX ที่กำลังทำงานอยู่ได้อย่างไร?

บางครั้งผู้ใช้อาจออกจากเว็บไซต์หรือเริ่มคำขอใหม่ก่อนที่คำขอก่อนหน้าจะเสร็จสมบูรณ์ เพื่อป้องกันการประมวลผลที่ไม่จำเป็น คุณสามารถทำได้ดังนี้ ยกเลิก คำขอ AJAX ที่กำลังดำเนินอยู่

ตัวอย่างการใช้งาน XMLHttpRequest:

let xhr = new XMLHttpRequest();
xhr.open('GET', '/data', true);
xhr.send();
// Cancel request
xhr.abort();

ตัวอย่างการใช้งาน Axios:

const controller = new AbortController();
fetch('/api/data', { signal: controller.signal });
controller.abort();

การยกเลิกคำขอจะช่วยเพิ่มการตอบสนองและลดภาระของเซิร์ฟเวอร์ โดยเฉพาะอย่างยิ่งในการค้นหาแบบเรียลไทม์หรือแดชบอร์ดที่รีเฟรชอัตโนมัติ


24) จะสามารถเชื่อมโยงหรือซิงโครไนซ์คำขอ AJAX ได้อย่างไร?

เมื่อมีการเรียกใช้ AJAX หลายครั้งที่ต้องพึ่งพาซึ่งกันและกัน สามารถเชื่อมโยงการเรียกใช้เหล่านั้นเข้าด้วยกันได้โดยใช้ สัญญา or async/รอ ไวยากรณ์เพื่อให้แน่ใจว่าลำดับถูกต้อง

ตัวอย่างการใช้ Promises:

fetch('/user')
  .then(res => res.json())
  .then(user => fetch(`/orders/${user.id}`))
  .then(res => res.json())
  .then(orders => console.log(orders));

ตัวอย่างการใช้งาน async/await:

async function fetchData() {
  const user = await fetch('/user').then(r => r.json());
  const orders = await fetch(`/orders/${user.id}`).then(r => r.json());
  console.log(orders);
}

วิธีการนี้ช่วยให้ได้โค้ดที่สะอาดตาและดูแลรักษาง่ายกว่าเมื่อเทียบกับการใช้ callback ที่ซ้อนกันหลายชั้น


25) AJAX จัดการกับการแยกวิเคราะห์และการแปลงข้อมูล JSON อย่างไร?

AJAX มักใช้ เจสัน (Javaสัญกรณ์วัตถุสคริปต์) เป็นรูปแบบการแลกเปลี่ยนข้อมูลที่นิยมใช้

คีย์ Operaชั่น:

อันดับ: แปลง Javaแปลงอ็อบเจ็กต์สคริปต์เป็น JSON ก่อนส่ง

const jsonData = JSON.stringify({ id: 1, name: 'Alice' });

การแยกวิเคราะห์: แปลง JSON ที่ได้รับกลับเป็นอ็อบเจ็กต์

const obj = JSON.parse(responseText);

ตัวอย่าง: เมื่อส่งคำขอ POST:

fetch('/addUser', {
  method: 'POST',
  headers: { 'Content-Type': 'application/json' },
  body: JSON.stringify({ name: 'John', age: 28 })
});

26) AJAX ถูกนำไปใช้ในแอปพลิเคชัน React อย่างไร?

React ไม่มีเมธอด AJAX ในตัว แต่โดยทั่วไปจะใช้เมธอดอื่นแทน เรียก API or Axios ภายใน useEffect() จุดสังเกตสำหรับผลข้างเคียง

ตัวอย่าง:

import { useEffect, useState } from 'react';
import axios from 'axios';

function UserList() {
  const [users, setUsers] = useState([]);

  useEffect(() => {
    axios.get('/api/users').then(res => setUsers(res.data));
  }, []);

  return users.map(u => <div key={u.id}>{u.name}</div>);
}

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


27) สามารถใช้ AJAX ในแอปพลิเคชัน Angular ได้อย่างไร?

Angular นำเสนอ ไคลเอนต์ HTTP โมดูลสำหรับการสื่อสารกับ API โดยใช้ AJAX รองรับ Observable ซึ่งทำให้การทำงานแบบอะซิงโครนัสมีประสิทธิภาพและตอบสนองได้ดียิ่งขึ้น

ตัวอย่าง:

this.http.get<User[]>('/api/users')
  .subscribe(data => this.users = data);

คุณสมบัติที่สำคัญ:

  • การแยกวิเคราะห์ JSON อัตโนมัติ
  • ตัวสกัดกั้นคำขอ/ตอบสนอง
  • การจัดการข้อผิดพลาดด้วย catchError
  • รองรับวิธีการ GET, POST, PUT และ DELETE

ตัวอย่างกรณีการใช้งาน: ดึงข้อมูลสภาพอากาศแบบเรียลไทม์จาก REST API และอัปเดตแดชบอร์ดแบบเรียลไทม์


28) ปัจจัยใดบ้างที่ควรพิจารณาเมื่อทดสอบการทำงานของ AJAX?

การทดสอบ AJAX จำเป็นต้องจำลองพฤติกรรมแบบอะซิงโครนัสและตรวจสอบความถูกต้องของการอัปเดต DOM แบบไดนามิก

ปัจจัยสำคัญ:

  1. เวลา: รอให้การเรียกใช้แบบอะซิงโครนัสเสร็จสมบูรณ์ก่อนจึงจะทำการตรวจสอบได้
  2. การเยาะเย้ย: ใช้ API จำลอง (เช่น msw or jest-fetch-mock).
  3. การตรวจสอบความถูกต้องของการตอบกลับ: ตรวจสอบให้แน่ใจว่าการแยกวิเคราะห์ข้อมูล JSON/XML นั้นถูกต้อง
  4. การจัดการข้อผิดพลาด: ทดสอบความล้มเหลวของเครือข่ายและเงื่อนไขการหมดเวลา
  5. ประสิทธิภาพ: ตรวจสอบเวลาตอบสนองและกลไกการแคชข้อมูล

ตัวอย่าง (ล้อเล่น):

global.fetch = jest.fn(() =>
  Promise.resolve({ json: () => Promise.resolve({ success: true }) })
);

29) สถานการณ์จริงใดบ้างที่ AJAX มีประโยชน์มากที่สุด?

AJAX ช่วยเพิ่มประสบการณ์การใช้งานของผู้ใช้ในแอปพลิเคชันต่างๆ มากมายในโลกแห่งความเป็นจริง:

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

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


30) คุณจะมั่นใจได้อย่างไรว่าแอปพลิเคชันที่ใช้ AJAX สามารถเข้าถึงได้และเข้ากันได้กับ SEO?

เว็บไซต์ที่ใช้ AJAX จำนวนมากมักประสบปัญหาด้านการเข้าถึงและ SEO เนื่องจากเนื้อหาถูกโหลดแบบไดนามิก

แนวทางแก้ไขปัญหา :

  1. การปรับปรุงอย่างต่อเนื่อง: ตรวจสอบให้แน่ใจว่าเนื้อหาหลักสามารถเข้าถึงได้แม้ไม่มี... Javaต้นฉบับ
  2. เขตพื้นที่จัดแสดง ARIA Live: แจ้งเนื้อหาที่อัปเดตแบบไดนามิกให้โปรแกรมอ่านหน้าจอทราบ
  3. การแสดงผลฝั่งเซิร์ฟเวอร์ (SSR): สร้างโค้ด HTML เริ่มต้นบนเซิร์ฟเวอร์เพื่อการปรับแต่ง SEO
  4. API ประวัติ: จัดการ URL เพื่อให้แน่ใจว่าการเชื่อมโยงแบบเจาะลึก (deep linking) ทำงานได้อย่างถูกต้อง
  5. การย้อนกลับ: จัดเตรียมตัวเลือกการนำทางอื่น ๆ สำหรับผู้ใช้ที่ไม่ใช้ JavaScript

ตัวอย่าง: ใช้ React ร่วมกับ เน็กซ์.เจส เพื่อผสานการอัปเดตแบบ AJAX เข้ากับ SSR เพื่อเพิ่มประสิทธิภาพ SEO และการเข้าถึงให้สูงสุด


31) สามารถใช้ AJAX ในการอัปโหลดไฟล์แบบอะซิงโครนัสได้อย่างไร?

AJAX ช่วยให้สามารถอัปโหลดไฟล์ได้โดยไม่ต้องโหลดหน้าเว็บใหม่ทั้งหมด โดยใช้ทั้งวิธีใดวิธีหนึ่งต่อไปนี้ API ของฟอร์มดาต้า หรือห้องสมุดสมัยใหม่เช่น Axios.

ตัวอย่าง (โดยใช้ Fetch และ FormData):

const formData = new FormData();
formData.append('file', document.querySelector('#fileInput').files[0]);
fetch('/upload', {
  method: 'POST',
  body: formData
})
.then(response => response.json())
.then(result => console.log(result));

ประโยชน์ที่สำคัญ:

  • ช่วยให้สามารถติดตามความคืบหน้าได้
  • ป้องกันการโหลดหน้าเว็บซ้ำ
  • ช่วยให้สามารถอัปโหลดไฟล์หลายไฟล์พร้อมกันได้

เคล็ดลับ: ควรตรวจสอบขนาดและประเภทไฟล์ทั้งฝั่งไคลเอนต์และเซิร์ฟเวอร์เสมอ เพื่อหลีกเลี่ยงการละเมิดความปลอดภัย


32) คุณจะตรวจสอบความคืบหน้าของคำขอ AJAX เช่น การอัปโหลดไฟล์ได้อย่างไร?

การติดตามความคืบหน้าช่วยเพิ่มประสบการณ์การใช้งานของผู้ใช้โดยการแสดงสถานะการอัปโหลดให้เห็นได้อย่างชัดเจน

ตัวอย่าง (โดยใช้ XMLHttpRequest):

const xhr = new XMLHttpRequest();
xhr.upload.onprogress = function(event) {
  if (event.lengthComputable) {
    const percent = (event.loaded / event.total) * 100;
    console.log(`Upload Progress: ${percent}%`);
  }
};
xhr.open('POST', '/upload');
xhr.send(formData);

ประโยชน์ที่ได้รับ:

  • อนุญาตให้ใช้แถบแสดงความคืบหน้าและตัวโหลดข้อมูลได้
  • ช่วยเพิ่มการมีส่วนร่วมของผู้ใช้
  • เปิดใช้งานการลองใหม่หากเกิดข้อผิดพลาด

กรอบงานเช่น Axios และ jQuery AJAX นอกจากนี้ยังรองรับเหตุการณ์ความคืบหน้าผ่านการเรียกกลับการกำหนดค่าด้วย


33) AJAX สามารถจัดการกับการหมดเวลาและการลองใหม่ได้อย่างไร?

เมื่อเซิร์ฟเวอร์ตอบสนองช้าเกินไป การใช้กลยุทธ์การหมดเวลาและการลองใหม่จะช่วยให้เสถียรภาพดีขึ้น

ตัวอย่างการใช้ jQuery:

$.ajax({
  url: '/data',
  timeout: 5000,
  error: function(xhr, status) {
    if (status === 'timeout') {
      console.log('Request timed out. Retrying...');
    }
  }
});

ปฏิบัติที่ดีที่สุด:

  1. กำหนดเวลาหมดอายุที่เหมาะสม (เช่น 5-10 วินาที)
  2. ใช้กลไกการหน่วงเวลาแบบทวีคูณสำหรับการลองใหม่
  3. ให้ใช้ API สำรองหากมีให้ใช้งาน

ตัวอย่าง (Axios):

axios.get('/api/data', { timeout: 5000 })
  .catch(err => console.error('Retrying...', err));

34) Long polling คืออะไร และแตกต่างจาก AJAX polling อย่างไร?

การสำรวจความคิดเห็นระยะยาว เป็นเทคนิคที่ไคลเอนต์ส่งคำขอไปยังเซิร์ฟเวอร์ และเซิร์ฟเวอร์จะเก็บคำขอนั้นไว้จนกว่าจะมีข้อมูลใหม่เข้ามา เมื่อเซิร์ฟเวอร์ส่งคำตอบแล้ว ไคลเอนต์จะส่งคำขอใหม่ทันที

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

ตัวอย่าง: ใช้ในแอปพลิเคชันแชทหรือแดชบอร์ดแบบเรียลไทม์เมื่อไม่รองรับ WebSockets

ความแตกต่าง: การใช้ Long polling ช่วยลดภาระของเซิร์ฟเวอร์และเวลาแฝงเมื่อเทียบกับการใช้ AJAX polling บ่อยครั้ง


35) มีทางเลือกอื่นใดบ้างนอกเหนือจาก AJAX สำหรับการสื่อสารแบบเรียลไทม์บนเว็บ?

แอปพลิเคชันเว็บสมัยใหม่ใช้เทคนิคขั้นสูงกว่า AJAX สำหรับข้อมูลแบบเรียลไทม์:

เทคโนโลยี Descriptไอออน ตัวอย่างการใช้งาน
WebSockets การสื่อสารแบบฟูลดูเพล็กซ์ แชทสด, เกม
เหตุการณ์ที่เซิร์ฟเวอร์ส่ง (SSE) การส่งข้อมูลทางเดียวจากเซิร์ฟเวอร์ ฟีดข่าวสด
การสมัครรับข้อมูล GraphQL ข้อมูลแบบเรียลไทม์ผ่าน WebSocket การอัปเดตสตรีมมิ่ง
WebRTC การเชื่อมต่อแบบเพียร์ทูเพียร์ การสตรีมวิดีโอ/เสียง

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


36) คุณจัดการกับการเรียกใช้ AJAX ที่ขึ้นต่อกันอย่างไร ในกรณีที่การเรียกใช้หนึ่งขึ้นอยู่กับการตอบสนองของการเรียกใช้อื่น?

คำขอที่เกี่ยวข้องจะได้รับการจัดการโดยใช้ การเชื่อมโยงคำสัญญา or async/รอเพื่อให้มั่นใจได้ว่าการดำเนินการเป็นไปตามลำดับ

ตัวอย่าง:

async function getUserAndOrders() {
  const user = await fetch('/api/user').then(res => res.json());
  const orders = await fetch(`/api/orders/${user.id}`).then(res => res.json());
  console.log(orders);
}

วิธีนี้จะช่วยป้องกันปัญหา callback hell และทำให้การไหลของข้อมูลเป็นไปอย่างมีเหตุผล ในระบบที่ซับซ้อน การใช้เครื่องมือจัดการสถานะ เช่น Redux หรือ RxJS จะช่วยรักษาความสม่ำเสมอในการดำเนินการ AJAX ที่ขึ้นต่อกันหลายๆ อย่างได้


37) จะรักษาความปลอดภัยของ AJAX จากการโจมตีแบบ Cross-Site Scripting (XSS) และ Cross-Site Request Forgery (CSRF) ได้อย่างไร?

มาตรการรักษาความปลอดภัยที่สำคัญ:

การคุกคาม เทคนิคการบรรเทาผลกระทบ
XSS ตรวจสอบและกรองข้อมูลที่ผู้ใช้ป้อนทั้งหมด เข้ารหัสข้อมูลก่อนแสดงผล
ซีเอสอาร์เอฟ ใส่โทเค็น CSRF ที่ไม่ซ้ำกันในส่วนหัวของ AJAX ตรวจสอบความถูกต้องที่ฝั่งเซิร์ฟเวอร์
การเปิดเผยข้อมูล ใช้ HTTPS และหลีกเลี่ยงการเปิดเผยข้อมูลที่ละเอียดอ่อนใน URL
การโจรกรรม JSON ส่งการตอบกลับด้วยประเภท MIME ที่ถูกต้อง (application/json).

ตัวอย่าง (ส่วนหัวโทเค็น CSRF):

fetch('/update', {
  method: 'POST',
  headers: { 'X-CSRF-Token': 'secureToken123' }
});

ตรวจสอบให้แน่ใจเสมอว่าทั้งฝั่งไคลเอ็นต์และเซิร์ฟเวอร์บังคับใช้กฎ CORS อย่างเคร่งครัด


38) การแคชช่วยปรับปรุงประสิทธิภาพของ AJAX ได้อย่างไร และคุณจะนำไปใช้ได้อย่างไร?

การแคชช่วยลดการเรียกใช้เซิร์ฟเวอร์ที่ไม่จำเป็นและช่วยเพิ่มความเร็วในการตอบสนอง

เทคนิค:

  1. แคชของเบราว์เซอร์: ใช้ส่วนหัว HTTP (Cache-Control, ETag).
  2. พื้นที่จัดเก็บข้อมูลภายในเครื่อง / พื้นที่จัดเก็บข้อมูลเซสชัน: บันทึกการตอบสนองแบบคงที่ไว้ในเครื่อง
  3. แคชแอปพลิเคชัน (เซอร์วิสเวิร์กเกอร์): แคชไฟล์ต่างๆ เพื่อใช้งานแบบออฟไลน์
  4. คำขอแบบมีเงื่อนไข: ใช้ If-Modified-Since เพิ่มส่วนหัวเพื่อหลีกเลี่ยงการดึงข้อมูลที่ไม่เปลี่ยนแปลงซ้ำ

ตัวอย่าง:

const cached = localStorage.getItem('userData');
if (cached) display(JSON.parse(cached));
else fetch('/user').then(r => r.json()).then(data => localStorage.setItem('userData', JSON.stringify(data)));

39) คุณจะจัดการกับคำขอ AJAX หลายรายการพร้อมกันได้อย่างมีประสิทธิภาพได้อย่างไร?

การจัดการการเรียกใช้ AJAX หลายรายการอย่างมีประสิทธิภาพช่วยป้องกันปัญหาการแย่งใช้ทรัพยากร (race condition) และรับประกันการใช้ทรัพยากรอย่างเหมาะสมที่สุด

วิธีการ:

  1. Promise.all(): รอจนกว่าคำขอทั้งหมดจะเสร็จสมบูรณ์
  2. Promise.all([
      fetch('/users'),
      fetch('/orders')
    ]).then(responses => Promise.all(responses.map(r => r.json())));
    
  3. การควบคุมปริมาณ: จำกัดจำนวนคำขอที่ส่งพร้อมกัน
  4. การเข้าคิว: กำหนดเวลาเรียกใช้ API ตามลำดับเพื่อหลีกเลี่ยงการโอเวอร์โหลด

การใช้ตัวจัดการคำขอ (เช่น ตัวดักจับของ Axios) ช่วยให้สามารถตรวจสอบและยกเลิกการเรียกใช้งานที่ซ้ำซ้อนได้อย่างมีประสิทธิภาพ


40) ความท้าทายในการเขียนโค้ด AJAX ในการสัมภาษณ์งานที่พบบ่อยมีอะไรบ้าง และมีวิธีแก้ไขอย่างไร?

ผู้สัมภาษณ์มักทดสอบความรู้เกี่ยวกับ AJAX ผ่านงานเขียนโค้ดเชิงปฏิบัติ เช่น:

ชาเลนจ์ ของคุณ วัตถุประสงค์ ตัวอย่างโซลูชัน
ดึงและแสดงข้อมูลผู้ใช้ ทำความเข้าใจการดึงข้อมูลแบบอะซิงโครนัส ใช้ Fetch API กับ .then()
ใช้งานระบบค้นหาแบบเรียลไทม์ ลดสัญญาณรบกวนและเพิ่มประสิทธิภาพ ใช้คำสั่ง setTimeout ก่อนเรียกใช้ AJAX
จัดการข้อผิดพลาดในการร้องขออย่างนุ่มนวล ความแข็งแรง การดักจับด้วย try-catch พร้อมข้อความสำรอง
เชื่อมโยงการเรียกใช้ API หลายครั้งเข้าด้วยกัน การจัดการแบบอะซิงโครนัส ใช้ async/await

ตัวอย่างโจทย์ท้าทาย: “เขียนฟังก์ชัน AJAX ที่ดึงข้อมูลโปรไฟล์ผู้ใช้และแสดงโพสต์ของพวกเขา”

วิธีการแก้:

async function showUserPosts(id) {
  const user = await fetch(`/api/user/${id}`).then(r => r.json());
  const posts = await fetch(`/api/posts/${user.id}`).then(r => r.json());
  console.log(user.name, posts.length);
}

41) AJAX ทำงานร่วมกับ REST API ในการพัฒนาเว็บสมัยใหม่อย่างไร?

AJAX เป็นกลไกสำคัญฝั่งไคลเอ็นต์สำหรับการใช้งาน REST API โดยการส่งคำขอ HTTP (GET, POST, PUT, DELETE) และรับการตอบกลับในรูปแบบ JSON สถาปัตยกรรม REST ให้รูปแบบการสื่อสารแบบไร้สถานะและอิงตามทรัพยากร

ตัวอย่าง:

fetch('/api/products', {
  method: 'POST',
  headers: { 'Content-Type': 'application/json' },
  body: JSON.stringify({ name: 'Laptop', price: 1200 })
});

ข้อดีที่สำคัญ:

  • การผสานรวมอย่างราบรื่นกับแอปพลิเคชันหน้าเดียว (SPAs)
  • การสื่อสารที่มีน้ำหนักเบาและมีจุดเชื่อมต่อที่กำหนดไว้ชัดเจน
  • การจัดการการดำเนินการ CRUD ทำได้ง่าย

AJAX ร่วมกับ REST API เป็นหัวใจสำคัญของแดชบอร์ดแบบไดนามิก แผงควบคุมผู้ดูแลระบบ และแอปพลิเคชันอีคอมเมิร์ซ


42) AJAX มีส่วนช่วยอย่างไรต่อแอปพลิเคชันหน้าเดียว (SPAs)?

ในแอปพลิเคชัน Single Page Application (SPA) AJAX เป็นพื้นฐานสำหรับการอัปเดตหน้าเว็บแบบไดนามิกโดยไม่ต้องโหลดเบราว์เซอร์ใหม่ มันดึงและแทรกเนื้อหาใหม่เข้าไปใน DOM ทำให้การเปลี่ยนหน้าเป็นไปอย่างราบรื่นและมีการโต้ตอบที่รวดเร็ว

ตัวอย่าง: แอปพลิเคชัน Single Page Application (SPA) ที่ใช้ React และ Angular ใช้ AJAX ผ่าน Fetch หรือ HttpClient เพื่ออัปเดตส่วนประกอบ UI แบบไดนามิก

ประโยชน์ที่ได้รับ:

  1. ปรับปรุงประสบการณ์การใช้งานของผู้ใช้ให้ดียิ่งขึ้นด้วยระบบนำทางที่รวดเร็ว
  2. ลดการใช้งานแบนด์วิดท์ลง
  3. การสื่อสารแบบอะซิงโครนัสกับ API

AJAX ช่วยให้ SPA (Single Page Application) มีลักษณะ "คล้ายแอปพลิเคชัน" โดยผสมผสานการตอบสนองที่รวดเร็วของแอปพลิเคชันแบบเนทีฟเข้ากับความยืดหยุ่นของเทคโนโลยีเว็บ


43) ข้อผิดพลาดทั่วไปที่นักพัฒนามักทำเมื่อใช้ AJAX มีอะไรบ้าง?

ข้อผิดพลาดทั่วไป ได้แก่:

  1. ไม่รองรับข้อผิดพลาดของเครือข่าย: ไม่มีกลไกสำรองหรือการลองใหม่ซ้ำ
  2. ไม่สนใจการกำหนดเวลาแบบอะซิงโครนัส: ใช้ข้อมูลก่อนที่คำขอจะเสร็จสมบูรณ์
  3. การละเลยด้านความปลอดภัย: ขาดโทเค็น CSRF หรือการตรวจสอบความถูกต้องของข้อมูลป้อนเข้า
  4. การรั่วไหลของหน่วยความจำ: ไม่ยกเลิกคำขอที่ไม่ได้ใช้งาน
  5. การดึงข้อมูลมากเกินไป: การส่งคำขอซ้ำซ้อนโดยไม่จำเป็น

ตัวอย่าง: ลืมโทร xhr.abort() เมื่อผู้ใช้เปลี่ยนเว็บไซต์ อาจทำให้เกิดภาระงานที่ไม่จำเป็นต่อเซิร์ฟเวอร์และสิ้นเปลืองแบนด์วิดท์


44) AJAX มีปฏิสัมพันธ์กับฐานข้อมูลทางอ้อมได้อย่างไร?

AJAX ไม่เชื่อมต่อกับฐานข้อมูลโดยตรง แต่จะสื่อสารผ่านช่องทางอื่น สคริปต์ฝั่งเซิร์ฟเวอร์ (เช่น PHP, Node.js, Python) ที่ทำการสอบถามฐานข้อมูลและส่งผลลัพธ์กลับไปยังไคลเอ็นต์

ตัวอย่างการไหล:

  1. ผู้ใช้เรียกใช้คำขอ AJAX →
  2. สคริปต์เซิร์ฟเวอร์สอบถามฐานข้อมูล →
  3. เซิร์ฟเวอร์ส่งการตอบกลับในรูปแบบ JSON →
  4. Javaสคริปต์จะอัปเดตหน้าเว็บ

ตัวอย่าง:

fetch('/getUsers')
  .then(res => res.json())
  .then(users => console.table(users));

การแยกส่วนนี้ช่วยเพิ่มความปลอดภัยโดยป้องกันการเข้าถึงข้อมูลประจำตัวฐานข้อมูลหรือคำสั่ง SQL จากฝั่งไคลเอ็นต์


45) จะสามารถผสานรวม AJAX กับ Node.js และ Express ได้อย่างไร?

ใน Node.js ที่ใช้ Express การร้องขอ AJAX จะถูกจัดการผ่านเส้นทาง RESTful

ตัวอย่าง (เซิร์ฟเวอร์):

app.get('/api/users', (req, res) => {
  res.json([{ id: 1, name: 'John Doe' }]);
});

ตัวอย่าง (ลูกค้า):

fetch('/api/users')
  .then(res => res.json())
  .then(data => console.log(data));

สถาปัตยกรรมนี้ให้ความสามารถในการขยายขนาดและช่วยให้สามารถจัดการการเชื่อมต่อแบบอะซิงโครนัสหลายพันรายการพร้อมกันได้อย่างมีประสิทธิภาพผ่านโมเดลการขับเคลื่อนด้วยเหตุการณ์ของ Node.js


46) จะสามารถผสานรวม AJAX กับ WebSockets สำหรับแอปพลิเคชันแบบเรียลไทม์ไฮบริดได้อย่างไร?

AJAX เหมาะอย่างยิ่งสำหรับการโหลดข้อมูลเริ่มต้น ในขณะที่ WebSockets จัดการกับการอัปเดตแบบเรียลไทม์อย่างต่อเนื่อง

ขั้นตอนการทำงานตัวอย่าง:

  1. โหลดข้อมูลหน้าเว็บเริ่มต้นโดยใช้ AJAX
  2. สร้างการเชื่อมต่อ WebSocket เพื่อรับการอัปเดตแบบเรียลไทม์

ตัวอย่าง:

  • AJAX ดึงข้อมูลราคาหุ้นเริ่มต้น
  • WebSocket ส่งข้อมูลราคาอัปเดตทุกวินาที

แนวทางแบบผสมผสานนี้สร้างสมดุลระหว่างประสิทธิภาพ (AJAX สำหรับการเรียกใช้ REST) ​​และการตอบสนอง (WebSocket สำหรับการสื่อสารแบบเรียลไทม์)


47) แนวทางปฏิบัติที่ดีที่สุดสำหรับการเขียนโค้ด AJAX ที่ดูแลรักษาง่ายมีอะไรบ้าง?

ปฏิบัติที่ดีที่สุด:

  1. ใช้การออกแบบแบบโมดูลาร์ – แยกตรรกะของ AJAX ออกเป็นฟังก์ชันที่สามารถนำกลับมาใช้ใหม่ได้
  2. นำระบบจัดการข้อผิดพลาดแบบรวมศูนย์มาใช้
  3. ใช้ async/await เพื่อให้อ่านง่ายขึ้น
  4. แปลง URL ปลายทางให้เป็นไฟล์การกำหนดค่า
  5. เพิ่มตัวบ่งชี้การโหลดเพื่อให้ผู้ใช้รับทราบข้อมูล

ตัวอย่าง:

async function fetchData(endpoint) {
  try {
    const response = await fetch(endpoint);
    if (!response.ok) throw new Error('Server error');
    return await response.json();
  } catch (err) {
    console.error(err);
  }
}

AJAX ที่สะอาดตาและเป็นแบบโมดูลาร์ช่วยเพิ่มความสามารถในการขยายขนาดและประสิทธิภาพในการแก้ไขข้อผิดพลาด


48) AJAX และ Fetch API แตกต่างกันอย่างไร?

ลักษณะ เอแจ็กซ์ (XMLHttpRequest) เรียก API
วากยสัมพันธ์ อิงตามการเรียกกลับ บนพื้นฐานของคำสัญญา
จัดการข้อผิดพลาด ซับซ้อน ง่ายขึ้นด้วย .catch()
ที่พริ้ว ไม่ได้รับการสนับสนุน ที่สนับสนุน
การแยกวิเคราะห์ JSON ด้วยมือ Built-in
Support เบราว์เซอร์รุ่นเก่า เบราว์เซอร์สมัยใหม่

ตัวอย่าง (การดึงข้อมูล):

fetch('/api')
  .then(r => r.json())
  .then(data => console.log(data));

สรุป: Fetch API เป็นทางเลือกที่ทันสมัยกว่าสำหรับ AJAX แบบดั้งเดิม ช่วยลดความซับซ้อนของการทำงานแบบอะซิงโครนัสและเพิ่มประสิทธิภาพในการบำรุงรักษา


49) AJAX มีบทบาทอย่างไรในแอปพลิเคชันเว็บแบบโปรเกรสซีฟ (PWA)?

ใน PWA (Progressive Web Application) AJAX ช่วยให้สามารถดึงข้อมูลเนื้อหาแบบไดนามิกได้แม้ในสภาพแวดล้อมที่มีการเชื่อมต่อไม่สมบูรณ์ โดยทำงานร่วมกับ... พนักงานบริการ เพื่อแคชและให้บริการข้อมูลแบบออฟไลน์

ตัวอย่าง:

  1. ผู้ใช้ร้องขอข้อมูลผ่านทาง AJAX
  2. Service Worker จะดักจับคำขอ
  3. หากออฟไลน์ ระบบจะแสดงข้อมูลที่แคชไว้ แต่หากใช้งานได้ ระบบจะดึงข้อมูลแบบเรียลไทม์มาใช้

แนวทางนี้สร้างประสบการณ์ที่ราบรื่นและยืดหยุ่น พร้อมทั้งปรับปรุงประสิทธิภาพในสภาวะเครือข่ายที่ไม่เสถียร


50) คุณจะดีบักการเรียกใช้ AJAX อย่างมีประสิทธิภาพในแอปพลิเคชันที่ซับซ้อนได้อย่างไร?

เทคนิคการดีบัก:

  1. แท็บเครือข่าย: ตรวจสอบคำขอ XHR และ Fetch
  2. คอนโซลล็อก(): บันทึก URL ของคำขอและการตอบกลับ
  3. จุดพัก: หยุดการทำงานที่บรรทัดการประมวลผล AJAX
  4. การตรวจสอบความถูกต้องของการตอบกลับ: ตรวจสอบรูปแบบข้อมูล (JSON หรือข้อความ)
  5. API จำลอง: ใช้ Postman หรือใช้ Mockaroo สำหรับการทดสอบ

ตัวอย่าง: ใช้ Chrome DevTools → เครือข่าย → กรองตาม “XHR” → ดูส่วนหัว เพย์โหลด และเวลา

ในแอปพลิเคชันขนาดใหญ่ ควรใช้ระบบบันทึกข้อมูลส่วนกลาง (เช่น Winston, Sentry) เพื่อติดตามการเรียกใช้ AJAX ที่ล้มเหลว


51) ความแตกต่างระหว่างการโพลล์แบบ AJAX และเหตุการณ์ที่ส่งจากเซิร์ฟเวอร์ (SSE) คืออะไร?

แง่มุม การสำรวจความคิดเห็น AJAX ทางทิศใต้
ทิศทาง ไคลเอนต์ → เซิร์ฟเวอร์ เซิร์ฟเวอร์ → ไคลเอ็นต์
อย่างมีประสิทธิภาพ Less ที่มีประสิทธิภาพ มีประสิทธิภาพสูง
ใช้กรณี การรีเฟรชด้วยตนเอง อัปเดตตามเวลาจริง
ตัวอย่าง การสำรวจความคิดเห็นในแชท อาหารสัตว์เลี้ยง

SSE ให้บริการสตรีมมิ่งแบบทางเดียวจากเซิร์ฟเวอร์ ช่วยลดภาระงานสำหรับข้อมูลแบบเรียลไทม์


52) คุณจะตรวจจับได้อย่างไรว่าคำขอ AJAX ทั้งหมดเสร็จสมบูรณ์แล้ว?

วิธีการ:

  1. ใช้ตัวนับสำหรับคำขอที่รอดำเนินการ
  2. นำไปใช้ Promise.all() สำหรับการโทรหลายสาย
  3. ใน jQuery ให้ใช้ ajaxStop() เหตุการณ์ระดับโลก

ตัวอย่าง:

$(document).ajaxStop(function() {
  console.log('All AJAX requests completed.');
});

วิธีนี้จะช่วยให้การอัปเดต UI (เช่น ตัวโหลด) หยุดลงก็ต่อเมื่อกระบวนการทำงานเบื้องหลังทั้งหมดเสร็จสิ้นแล้วเท่านั้น


53) คุณจะรักษาความปลอดภัยของข้อมูลที่ละเอียดอ่อนในคำตอบ AJAX ได้อย่างไร?

กลยุทธ์:

  • ห้ามเปิดเผยคีย์ API หรือข้อมูลประจำตัวในโค้ดฝั่ง front-end เด็ดขาด
  • เข้ารหัสข้อมูลสำคัญฝั่งเซิร์ฟเวอร์
  • ใช้ HTTPS และโทเค็นการตรวจสอบสิทธิ์ที่มีอายุสั้น
  • ตรวจสอบและกรองข้อมูลขาเข้าและขาออกทั้งหมดให้ปลอดภัย

ตัวอย่าง: โทเค็น JWT สามารถรักษาความปลอดภัยของเซสชันผู้ใช้ในแอปพลิเคชันที่ใช้ AJAX ได้


54) คุณจัดการคำขอ AJAX อย่างไรในระหว่างการนำทางของผู้ใช้หรือการเปลี่ยนแปลงเส้นทาง SPA?

ก่อนเปลี่ยนเส้นทาง ให้ยกเลิกคำขอ AJAX ที่กำลังดำเนินการอยู่ เพื่อป้องกันการรั่วไหลของข้อมูลหรือสถานะที่ไม่สอดคล้องกัน

ตัวอย่าง:

let controller = new AbortController();
fetch('/api/data', { signal: controller.signal });
controller.abort(); // Cancel on route change

เฟรมเวิร์กอย่าง React Router หรือ Angular Router มีฟังก์ชันจัดการวงจรชีวิต (lifecycle hooks) สำหรับการดำเนินการล้างข้อมูลดังกล่าว


55) AJAX และ Axios แตกต่างกันอย่างไร?

ลักษณะ เอแจ็กซ์ (XMLHttpRequest) Axios
วากยสัมพันธ์ อิงตามการเรียกกลับ บนพื้นฐานของคำสัญญา
อินเตอร์เซปเตอร์ ไม่สามารถใช้ได้ ที่สนับสนุน
จัดการข้อผิดพลาด ด้วยมือ ย่อ
รองรับ Node.js ถูก จำกัด ใช่
การจัดการ JSON ด้วยมือ อัตโนมัติ

ตัวอย่าง (Axios):

axios.get('/api/users')
  .then(res => console.log(res.data));

Axios ช่วยเพิ่มประสิทธิภาพในการบำรุงรักษา รองรับการกำหนดค่าทั่วโลก และมีฟังก์ชันการแยกวิเคราะห์ JSON โดยอัตโนมัติ


56) คุณจะมั่นใจได้อย่างไรว่าแอปพลิเคชันที่ใช้ AJAX จำนวนมากจะสามารถรองรับการขยายขนาดได้?

เทคนิค:

  1. ส่งคำขอ AJAX หลายรายการพร้อมกัน
  2. บันทึกผลลัพธ์โดยใช้ Redis หรือที่เก็บข้อมูลภายในเครื่อง
  3. ใช้การแบ่งหน้าและการโหลดแบบเลซี่โหลด (Lazy Loading)
  4. ลดขนาดข้อมูลให้เหลือน้อยที่สุด (การบีบอัดด้วย GZIP, JSON)
  5. ใช้งานระบบควบคุมการรับส่งข้อมูลฝั่งเซิร์ฟเวอร์

ตัวอย่าง: การโหลดผลลัพธ์ 10 รายการพร้อมกันในรูปแบบการเลื่อนแบบไม่สิ้นสุด ช่วยเพิ่มประสิทธิภาพการทำงานได้อย่างมาก


57) การโจมตีแบบ JSON hijacking คืออะไร และจะป้องกันได้อย่างไร?

การโจรกรรมข้อมูล JSON เกิดขึ้นเมื่อเว็บไซต์ที่เป็นอันตรายพยายามขโมยข้อมูล JSON ที่สำคัญผ่านคำขอ AJAX ที่ไม่ได้รับอนุญาต

เทคนิคการป้องกัน:

  • ชุด Content-Type: application/json.
  • ตรวจสอบ Origin และ Referer ส่วนหัว
  • ควรห่อหุ้มข้อมูลการตอบกลับด้วยอาร์เรย์หรือออบเจ็กต์แทนที่จะใช้ JSON แบบดิบๆ

ตัวอย่าง:

แทนที่จะส่งคืน: [{"user":"John"}]

เดินทางกลับ: {"data":[{"user":"John"}]}


58) AJAX จัดการกับข้อมูลไบนารีหรือไฟล์อย่างไร?

AJAX สามารถส่งและรับข้อมูลไบนารีโดยใช้ responseType คุณสมบัติ

ตัวอย่าง:

xhr.responseType = 'blob';
xhr.onload = function() {
  const blob = xhr.response;
  console.log(blob.size);
};
xhr.open('GET', '/image.jpg');
xhr.send();

これによりสามารถดาวน์โหลดไฟล์ ดูตัวอย่างภาพ และแสดงผล PDF ได้โดยตรงในแอปพลิเคชันบนเว็บ


59) คุณจะผสานการใช้งาน AJAX กับไลบรารีแคชข้อมูลอย่าง IndexedDB ได้อย่างไร?

IndexedDB จัดเก็บข้อมูลที่มีโครงสร้างไว้ในเครื่อง ทำให้ลดจำนวนการร้องขอไปยังเซิร์ฟเวอร์

ตัวอย่าง:

fetch('/users')
  .then(res => res.json())
  .then(data => {
    const db = indexedDB.open('AppDB');
    // Save to IndexedDB here
  });

ประโยชน์: ช่วยให้เข้าถึงข้อมูลแบบออฟไลน์ได้ และโหลดข้อมูลซ้ำได้เร็วกว่าเดิมอย่างมาก


60) อนาคตของ AJAX ในการพัฒนาเว็บสมัยใหม่จะเป็นอย่างไร?

AJAX ยังคงมีความสำคัญอยู่ แนวคิดแม้ว่าการนำไปใช้จะมีการพัฒนาไปแล้วก็ตาม เรียก API, Axios, GraphQLและ WebSockets ปัจจุบันสามารถปฏิบัติหน้าที่คล้ายคลึงกันได้ แต่มีฟังก์ชันการทำงานที่มากขึ้น

แนวโน้มในอนาคต:

  • Shift เพื่อดึงข้อมูลและใช้ async/await
  • การผสานรวมกับ API ของ GraphQL
  • ปรับปรุงประสบการณ์ผู้ใช้แบบเรียลไทม์ให้ดียิ่งขึ้นผ่าน WebSockets และ SSE

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


🔍 คำถามสัมภาษณ์งาน AJAX ยอดนิยม พร้อมสถานการณ์จริงและคำตอบเชิงกลยุทธ์

1) AJAX คืออะไร และเหตุใดจึงมีความสำคัญในแอปพลิเคชันเว็บสมัยใหม่?

สิ่งที่คาดหวังจากผู้สมัคร: ผู้สัมภาษณ์ต้องการประเมินความเข้าใจของคุณเกี่ยวกับพื้นฐานของ AJAX และบทบาทของมันในการปรับปรุงประสบการณ์ผู้ใช้และประสิทธิภาพของแอปพลิเคชัน

ตัวอย่างคำตอบ: “AJAX ย่อมาจาก Asynchronous (อะซิงโครนัส)” Javaสคริปต์และ XML ช่วยให้เว็บแอปพลิเคชันสามารถส่งและรับข้อมูลจากเซิร์ฟเวอร์แบบอะซิงโครนัสโดยไม่ต้องโหลดหน้าเว็บใหม่ทั้งหมด ซึ่งจะช่วยปรับปรุงประสิทธิภาพ ยกระดับประสบการณ์ผู้ใช้ และทำให้ส่วนติดต่อผู้ใช้มีความไดนามิกและตอบสนองได้ดียิ่งขึ้น”


2) AJAX ช่วยปรับปรุงประสบการณ์การใช้งานของผู้ใช้เมื่อเทียบกับการโหลดหน้าเว็บแบบดั้งเดิมได้อย่างไร?

สิ่งที่คาดหวังจากผู้สมัคร: ผู้สัมภาษณ์กำลังประเมินความสามารถของคุณในการเชื่อมโยงแนวคิดทางเทคนิคเข้ากับประโยชน์ที่ผู้ใช้จะได้รับจริง

ตัวอย่างคำตอบ: “AJAX ช่วยปรับปรุงประสบการณ์การใช้งานของผู้ใช้โดยอนุญาตให้ส่วนต่างๆ ของหน้าเว็บอัปเดตได้อย่างอิสระ ซึ่งจะช่วยลดเวลารอ หลีกเลี่ยงการรีเฟรชหน้าเว็บทั้งหมด และสร้างการโต้ตอบที่ราบรื่นยิ่งขึ้น เช่น ผลการค้นหาแบบเรียลไทม์ หรือการตรวจสอบความถูกต้องของแบบฟอร์ม”


3) กรณีการใช้งานทั่วไปที่ AJAX มีประสิทธิภาพสูงสุดมีอะไรบ้าง?

สิ่งที่คาดหวังจากผู้สมัคร: ผู้สัมภาษณ์ต้องการดูว่าคุณสามารถประยุกต์ใช้ AJAX ได้อย่างเหมาะสมในสถานการณ์จริงหรือไม่

ตัวอย่างคำตอบ: “กรณีการใช้งานทั่วไป ได้แก่ การส่งแบบฟอร์มพร้อมการตรวจสอบความถูกต้อง คำแนะนำการค้นหาแบบเรียลไทม์ การเลื่อนดูแบบไม่สิ้นสุด การแจ้งเตือนแบบเรียลไทม์ และแดชบอร์ดแสดงข้อมูลที่กำลังโหลด สถานการณ์เหล่านี้จะได้รับประโยชน์จากการอัปเดตบางส่วนโดยไม่ขัดจังหวะการใช้งานของผู้ใช้”


4) คุณช่วยอธิบายบทบาทของอ็อบเจ็กต์ XMLHttpRequest หรือ Fetch API ใน AJAX ได้ไหม?

สิ่งที่คาดหวังจากผู้สมัคร: ผู้สัมภาษณ์ต้องการทดสอบความรู้ของคุณเกี่ยวกับวิธีการทำงานของ AJAX ในเบื้องหลัง

ตัวอย่างคำตอบ: “อ็อบเจ็กต์ XMLHttpRequest และ API Fetch ใช้สำหรับส่งคำขอ HTTP ไปยังเซิร์ฟเวอร์และจัดการการตอบกลับแบบอะซิงโครนัส Fetch เป็นเทคโนโลยีที่ทันสมัยกว่าและมีวิธีการที่สะอาดกว่า โดยใช้ Promise ทำให้โค้ดอ่านและบำรุงรักษาได้ง่ายขึ้น”


5) อธิบายสถานการณ์ที่คุณใช้ AJAX เพื่อแก้ไขปัญหาด้านประสิทธิภาพ

สิ่งที่คาดหวังจากผู้สมัคร: ผู้สัมภาษณ์ต้องการหลักฐานแสดงถึงประสบการณ์ภาคปฏิบัติและความสามารถในการแก้ปัญหา

ตัวอย่างคำตอบ: “ในบทบาทก่อนหน้านี้ ฉันได้ปรับปรุงแดชบอร์ดที่มีข้อมูลจำนวนมากให้มีประสิทธิภาพยิ่งขึ้น โดยการแทนที่การโหลดหน้าเว็บทั้งหมดด้วยการดึงข้อมูลแบบ AJAX ซึ่งช่วยลดเวลาในการโหลดลงอย่างมาก และทำให้ผู้ใช้สามารถโต้ตอบกับตัวกรองและแผนภูมิได้แบบเรียลไทม์”


6) คุณจัดการกับข้อผิดพลาดและความล้มเหลวในการร้องขอ AJAX อย่างไร?

สิ่งที่คาดหวังจากผู้สมัคร: ผู้สัมภาษณ์กำลังประเมินแนวทางของคุณเกี่ยวกับความน่าเชื่อถือ การแก้ไขข้อผิดพลาด และการสื่อสารกับผู้ใช้

ตัวอย่างคำตอบ: “ฉันจัดการกับข้อผิดพลาดโดยการตรวจสอบรหัสสถานะอย่างถูกต้อง ใช้บล็อก try-catch ร่วมกับ Fetch API และแสดงข้อความแสดงข้อผิดพลาดที่เป็นมิตรกับผู้ใช้ ในตำแหน่งงานก่อนหน้านี้ ฉันยังบันทึกข้อผิดพลาดไว้ส่วนกลางเพื่อช่วยระบุปัญหาที่เกิดขึ้นซ้ำๆ ด้วย”


7) ควรคำนึงถึงข้อควรพิจารณาด้านความปลอดภัยใดบ้างเมื่อใช้ AJAX?

สิ่งที่คาดหวังจากผู้สมัคร: ผู้สัมภาษณ์ต้องการเข้าใจว่าคุณตระหนักถึงความเสี่ยงด้านความปลอดภัยและแนวปฏิบัติที่ดีที่สุดมากน้อยเพียงใด

ตัวอย่างคำตอบ: “ข้อควรพิจารณาด้านความปลอดภัยรวมถึงการป้องกันการโจมตีแบบ Cross-Site Scripting (XSS), Cross-Site Request Forgery (CSRF) และการเปิดเผยข้อมูลที่ละเอียดอ่อนผ่าน API ในงานก่อนหน้านี้ของผม เราได้ตรวจสอบให้แน่ใจว่ามีการใช้ส่วนหัวที่ปลอดภัย การตรวจสอบสิทธิ์แบบใช้โทเค็น และการตรวจสอบความถูกต้องฝั่งเซิร์ฟเวอร์สำหรับเอนด์พอยต์ AJAX ทั้งหมด”


8) คุณตัดสินใจอย่างไรว่าจะใช้ AJAX หรือการโหลดหน้าเว็บใหม่ทั้งหมด?

สิ่งที่คาดหวังจากผู้สมัคร: ผู้สัมภาษณ์กำลังประเมินวิจารณญาณและทักษะการตัดสินใจด้านสถาปัตยกรรมของคุณ

ตัวอย่างคำตอบ: “ผมพิจารณาถึงความซับซ้อนของการทำงานร่วมกัน ความสำคัญของ SEO และประสบการณ์ของผู้ใช้ สำหรับการอัปเดตข้อมูลขนาดเล็กหรือองค์ประกอบแบบโต้ตอบ AJAX เหมาะสมที่สุด สำหรับการเปลี่ยนแปลงการนำทางครั้งใหญ่หรือหน้าเว็บที่มีเนื้อหาจำนวนมาก การโหลดหน้าเว็บใหม่ทั้งหมดอาจเหมาะสมกว่า”


9) อธิบายว่า AJAX เข้ากับสถาปัตยกรรม RESTful API ได้อย่างไร

สิ่งที่คาดหวังจากผู้สมัคร: ผู้สัมภาษณ์ต้องการดูว่าคุณเข้าใจวิธีการทำงานร่วมกันของระบบฟรอนต์เอนด์และแบ็กเอนด์หรือไม่

ตัวอย่างคำตอบ: “AJAX ทำหน้าที่เป็นตัวกลางในการสื่อสารระหว่างไคลเอ็นต์และ RESTful API โดยจะส่งคำขอ HTTP เช่น GET หรือ POST และประมวลผลการตอบกลับ JSON เพื่ออัปเดตส่วนติดต่อผู้ใช้แบบไดนามิก ในบทบาทก่อนหน้านี้ของผม วิธีการนี้ช่วยแยกส่วนหน้าออกจากส่วนหลังได้อย่างมีประสิทธิภาพ”


10) คุณจัดการคำขอ AJAX อย่างไรเมื่อมีการเรียกใช้งานหลายรายการพร้อมกัน?

สิ่งที่คาดหวังจากผู้สมัคร: ผู้สัมภาษณ์ต้องการทดสอบความสามารถของคุณในการรับมือกับความซับซ้อนและรักษาประสิทธิภาพการทำงาน

ตัวอย่างคำตอบ: “ฉันจัดการคำขอ AJAX หลายรายการโดยใช้การเชื่อมโยง Promise, ไวยากรณ์ async และ await หรือการรวมคำขอเป็นกลุ่มตามความเหมาะสม นอกจากนี้ ฉันยังจัดลำดับความสำคัญของคำขอที่สำคัญและยกเลิกคำขอที่ไม่จำเป็นเพื่อหลีกเลี่ยงปัญหาคอขวดด้านประสิทธิภาพ”

สรุปโพสต์นี้ด้วย: