Just another WordPress weblog
17 Aug
บทความนี้แปลมาจาก http://www.w3schools.com/Ajax/ajax_xmlhttprequest.asp
ก่อนที่จะส่งข้อมูลเข้าไปยังเซิฟเวอร์ ต้องขออธิบาย 3 คุณสมบัติสำคัญของ XMLHttpRequest ก่อนนะครับ
1. The onreadystatechange Property (คุณสมบัติที่มีชื่อว่า onreadystatechange )
หลังจากส่งคำร้องขอไปยังเซิฟเวอร์ เราจำเป็นต้องมีฟังก์ชันไว้รับ ข้อมูลตอบกลับจากเซิฟเวอร์
ตัวคุณสมบัติ onreadystatechange นั้นได้เก็บฟังก์ชั่นที่ใช้ในกระบวนการโต้ตอบจากเซิฟเวอร์
ฟังก์ชั่นข้างล่างนี้ถูกประกาศไว้ว่างเปล่า และยังเป็นตัว onreadystatechange ในขณะเดียวกันด้วย
———————
xmlHttp.onreadystatechange=function()
{
// We are going to write some code here
}
———————
2. The readyState Property ( readyState )
คุณสมบัติตัว readyState นี้มีไว้เก็บค่าสถานะ ที่ถูกตอบกลับจากเซิฟเวอร์ แต่ละครั้งสถานะจะเปลี่ยนแปลงไปตลอด
ขณะที่ฟังก์ชัน onreadystatechange ทำงานอยู่
ข้างล่างนี้คือค่าที่เป็นไปได้ ของ readyState
——————–
| State | Description |
|---|---|
| 0 | The request is not initialized |
| 1 | The request has been set up |
| 2 | The request has been sent |
| 3 | The request is in process |
| 4 | The request is complete |
——————–
เราจะเพิ่ม เงื่อนไข IF เข้าไปในโค้ดเดิม ดังข้างล่างนี้ เพื่อจะได้รู้ว่าเมื่อเราร้องขอไปยังเซิฟเวอร์ สามารถสำเร็จได้
———————-
xmlHttp.onreadystatechange=function()
{
if(xmlHttp.readyState==4)
{
// Get the data from the server's response
}
}
———————-
3.The responseText Property ( คุณสมบัติที่ชื่อว่า responseText )
ข้อมูลที่ถูกส่งกลับมาจากเซิฟเวอร์นั้น จะถูกรับโดยคุณสมบัติ responseText นั่นเอง
ท่านจะจำได้ว่า จากโค้ดหน้ากรอกข้อมูล เรามี Textfield อันนึงชื่อว่า time และเรามีจุดมุ่งหมาย
ให้ช่อง time นั้นถูกกรอกเอง โดยการทำงานของ ajax ดังนั้นจากโค้ดข้างบน เราต้องใส่ตัวแปร time (เป็นชื่อ)
เพื่อให้สอดคล้องกับจุดมุ่งหมาย โดยตัวแปร time จะได้รับค่าจาก responseText นั่นเอง
——————–
xmlHttp.onreadystatechange=function()
{
if(xmlHttp.readyState==4)
{
document.myForm.time.value=xmlHttp.responseText;
}
}
——————–
สรุปในบทนี้เราได้เรียนเรื่องอะไรบ้าง
————————
1. XMLHttpRequest Object มีคุณสมบัติสำคัญสามตัว
2. คุณสมบัติ onreadystatechange เป็นฟังก์ชั่นโต้ตอบกับเซิฟเวอร์
3. คุณสมบัติ readyState เป็นฟังก์ชั่นบอกให้ทราบถึงสถานะที่เปลี่ยนไปจากเซิฟเวอร์
4. คุณสมบัติ responseText เป็นตัวที่รับข้อมูลจากเซิฟเวอร์
————————
ในบทต่อไปเราจะเรียนรู้ว่า จะถามถึง(ask) ข้อมูลบางอันจาก เซิฟเวอร์อย่างไร.
ถ้าแปลไม่แหล่มขออภัยด้วย