ล่าสุดการพัฒนาเว็บบทเรียน
 

AJAX - เหตุการณ์ที่ onreadystatechange


เหตุการณ์ onreadystatechange

เมื่อมีการร้องขอไปยังเซิร์ฟเวอร์จะถูกส่งเราต้องการที่จะดำเนินการกระทำบางอย่างขึ้นอยู่กับการตอบสนอง

เหตุการณ์ onreadystatechange จะถูกเรียกทุกครั้งที่มีการเปลี่ยนแปลง readyState

สถานที่ให้บริการ readyState ถือสถานะของ XMLHttpRequest

สามคุณสมบัติที่สำคัญของวัตถุ XMLHttpRequest นี้:

คุณสมบัติ ลักษณะ
onreadystatechange ร้านฟังก์ชั่น (หรือชื่อของฟังก์ชัน) จะถูกเรียกโดยอัตโนมัติทุกครั้งที่มีการเปลี่ยนแปลงสถานที่ให้บริการ readyState
readyState ถือสถานะของ XMLHttpRequest การเปลี่ยนแปลง 0-4:
0 ขอไม่ได้เริ่มต้น
1: การเชื่อมต่อเซิร์ฟเวอร์ที่จัดตั้งขึ้น
2: ได้รับการร้องขอ
3: การประมวลผลคำขอ
4: ขอสำเร็จรูปและการตอบสนองพร้อม
status 200: "OK"
ไม่พบหน้า: 404

ในกรณี onreadystatechange เราระบุสิ่งที่จะเกิดขึ้นเมื่อตอบกลับของเซิร์ฟเวอร์ที่มีความพร้อมที่จะดำเนินการ

เมื่อ readyState คือ 4 และสถานะคือ 200, การตอบสนองพร้อมแล้ว:

ตัวอย่าง

function loadDoc() {
  var xhttp = new XMLHttpRequest();
  xhttp.onreadystatechange = function() {
  if (xhttp.readyState == 4 && xhttp.status == 200) {
    document.getElementById("demo").innerHTML = xhttp.responseText;
  }
};
ลองตัวเอง»

หมายเหตุ: เหตุการณ์ onreadystatechange ถูกเรียกห้าครั้ง (0-4), ครั้งเดียวสำหรับแต่ละการเปลี่ยนแปลงใน readyState


การใช้ฟังก์ชั่นการโทรกลับ

ฟังก์ชั่นการโทรกลับเป็นฟังก์ชั่นการส่งผ่านเป็นพารามิเตอร์ไปยังฟังก์ชั่นอื่น

หากคุณมีมากกว่าหนึ่งงาน AJAX ในเว็บไซต์ของคุณคุณควรสร้างฟังก์ชั่นมาตรฐานสำหรับการสร้างวัตถุ XMLHttpRequest และสายนี้สำหรับแต่ละงาน AJAX

เรียกฟังก์ชันควรมี URL ที่และสิ่งที่ต้องทำใน onreadystatechange (ซึ่งอาจจะแตกต่างกันสำหรับแต่ละสาย):

ตัวอย่าง

function loadDoc(cFunc) {
  var xhttp = new XMLHttpRequest();
  xhttp.onreadystatechange = function() {
  if (xhttp.readyState == 4 && xhttp.status == 200) {
    cFunc(xhttp);
  }
ลองตัวเอง»