รู้จักกับ Ajax Events ใน jQuery
12 November 2009
events ที่เกิดจากการเรียกใช้งาน ajax ใน jQuery แบ่งออกได้เป็น 2 ประเภท
1. Local Events ใช้กับ ajax object ของ jQuery
1.ajaxStart (Global Event)
เป็น event ที่เกิดเมื่อเริ่มมีการร้องขอแบบ Ajax และไม่มีคำร้องขอแบบ Ajax อื่นที่กำลังทำงานอยู่
เป็น event ที่เรียกก่อนที่คำร้องขอแบบ ajax จะเริ่ม ใช้สำหรับกำหนดค่าเพิ่มเติมเกี่ยวกับ ajax เช่น header,content-type เป็นต้น
เป็น event ที่เรียกก่อนที่คำร้องขอแบบ ajax จะทำงาน
เป็น event ที่เกิดขึ้นต่อเมื่อมีการส่งคำร้องขอแบบ ajax สำเร็จ ไม่มีข้อผิดพลาดจาก เซิร์ฟเวอร์ ไม่มีข้อผิดพลาดกับข้อมูลที่ส่ง
เป็น event ที่เกิดขึ้นต่อเมื่อมีการส่งคำร้องขอแบบ ajax สำเร็จ คล้ายกับ local success event
เป็น event ที่เกิดขึ้นการส่งคำร้องขอแบบ ajax ล้มเหลวหรือเกิดข้อผิดพลาด
เป็น event ที่เกิดขึ้นการส่งคำร้องขอแบบ ajax ล้มเหลวหรือเกิดข้อผิดพลาด คล้ายกับ local error event
เป็น event ที่เกิดขึ้นเมื่อมีการส่งคำร้องขอแบบ ajax ไป โดยไม่จำเป็นที่คำร้องขอแบบ ajax นั้นจะสำเร็จหรือไม่
เป็น event ที่เกิดขึ้นเมื่อมีการส่งคำร้องขอแบบ ajax ไป โดยไม่จำเป็นที่คำร้องขอแบบ ajax นั้นจะสำเร็จหรือไม่ และ event นี้จะเกิดขึ้นเสมอเมื่อคำร้องขอแบบ ajax จบลง คล้ายกับ local complete event
เป็น event ที่เกิดเมื่อ คำร้องขอแบบ ajax จบลง หรือไม่มีคำร้องขอแบบ ajax ใดๆ ที่กำลังดำเนินการอยู่
1. Local Events ใช้กับ ajax object ของ jQuery
ตัวอย่างการใช้งาน Local Events
$.ajax({
beforeSend: function(){
// สำหรับควบคุม beforeSend event
},
complete: function(){
// สำหรับควบคุม complete event
}
// ......
});
2. Global Events ใช้กับ DOM (Document Object Model) element ทั่วไปเช่น div,img,input เป็นต้น
ตัวอย่างการใช้งาน Global Events
$("div#loading").bind("ajaxSend", function(){
$(this).show();
}).bind("ajaxComplete", function(){
$(this).hide();
});
การปิดการใช้งาน Global Events สามารถกำหนด option ใน ajax object ของ jQuery
ตัวอย่างการปิดการใช่้งาน Global Events
$.ajax({
url: "test.html",
global: false,
// ...
});
รายการ Events ทั้งหมดที่เกิดจากการใช้งาน ajax object ใน jQuery1.ajaxStart (Global Event)
เป็น event ที่เกิดเมื่อเริ่มมีการร้องขอแบบ Ajax และไม่มีคำร้องขอแบบ Ajax อื่นที่กำลังทำงานอยู่
ตัวอย่างการใช้งาน
// เมื่อมีการส่งคำร้องขอแบบ ajax ให้ div ที่มี id เท่ากับ loading แสดง
$("div#loading").ajaxStart(function(){
$(this).show();
});
2.beforeSend (Local Event)เป็น event ที่เรียกก่อนที่คำร้องขอแบบ ajax จะเริ่ม ใช้สำหรับกำหนดค่าเพิ่มเติมเกี่ยวกับ ajax เช่น header,content-type เป็นต้น
ตัวอย่างการใช้งาน
$.ajax({
beforeSend: function(){
// สำหรับควบคุม beforeSend event
}
});
3.ajaxSend (Global Event)เป็น event ที่เรียกก่อนที่คำร้องขอแบบ ajax จะทำงาน
ตัวอย่างการใช้งาน
// แสดงข้อความ ก่อนคำร้องขอแบบ ajax จะทำงาน
$("div#msg").ajaxSend(function(){
$(this).append("<li>Starting request </li>");
});
4.success (Local Event)เป็น event ที่เกิดขึ้นต่อเมื่อมีการส่งคำร้องขอแบบ ajax สำเร็จ ไม่มีข้อผิดพลาดจาก เซิร์ฟเวอร์ ไม่มีข้อผิดพลาดกับข้อมูลที่ส่ง
ตัวอย่างการใช้งาน
$.ajax({
success: function(){
// สำหรับควบคุม success event
}
});
5.ajaxSuccess (Global Event)เป็น event ที่เกิดขึ้นต่อเมื่อมีการส่งคำร้องขอแบบ ajax สำเร็จ คล้ายกับ local success event
ตัวอย่างการใช้งาน
// แสดงข้อความเมื่อทำการส่งคำร้องขอแบบ ajax สำเร็จ
$("div#msg").ajaxSuccess(function(){
$(this).append("<li>Successful Request!</li>");
});
6.error (Local Event)เป็น event ที่เกิดขึ้นการส่งคำร้องขอแบบ ajax ล้มเหลวหรือเกิดข้อผิดพลาด
ตัวอย่างการใช้งาน
$.ajax({
error: function(){
// สำหรับควบคุม error event
}
});
7.ajaxError (Global Event)เป็น event ที่เกิดขึ้นการส่งคำร้องขอแบบ ajax ล้มเหลวหรือเกิดข้อผิดพลาด คล้ายกับ local error event
ตัวอย่างการใช้งาน
$("div#msg").ajaxError(function(){
$(this).append("<li>Error requesting page </li>");
});
8.complete (Local Event)เป็น event ที่เกิดขึ้นเมื่อมีการส่งคำร้องขอแบบ ajax ไป โดยไม่จำเป็นที่คำร้องขอแบบ ajax นั้นจะสำเร็จหรือไม่
ตัวอย่างการใช้งาน
$.ajax({
complete: function(){
// สำหรับควบคุม complete event
}
});
9.ajaxComplete (Global Event)เป็น event ที่เกิดขึ้นเมื่อมีการส่งคำร้องขอแบบ ajax ไป โดยไม่จำเป็นที่คำร้องขอแบบ ajax นั้นจะสำเร็จหรือไม่ และ event นี้จะเกิดขึ้นเสมอเมื่อคำร้องขอแบบ ajax จบลง คล้ายกับ local complete event
ตัวอย่างการใช้งาน
$("div#msg").ajaxComplete(function(){
$(this).append("<li>Request Complete.</li>");
});
10.ajaxStop (Global Event)เป็น event ที่เกิดเมื่อ คำร้องขอแบบ ajax จบลง หรือไม่มีคำร้องขอแบบ ajax ใดๆ ที่กำลังดำเนินการอยู่
ตัวอย่างการใช้งาน
// ซ่อน loading div เมื่อคำร้องขอแบบ ajax จบลง
$("div#loading").ajaxStop(function(){
$(this).hide();
});
ถ้าสามารถทำความเข้าใจ event ต่างๆ ได้ดีแล้วจะทำให้สามารถใช้งาน ajax ใน jQuery ได้อย่างมีประสิทธิภาพ
อ่านเพิ่มเดิมภาษาอังกฤษ http://docs.jquery.com/Ajax_Events
บทความคนเข้าอ่านวันนี้
13 Feb 09 แปลงข้อความเป็นตัวเล็ก toLowerCase ตัวใหญ่ toUpperCase ด้วย javascript อ่าน 1876 04 Oct 08 การติดตั้ง MySQL บน Windows อ่าน 2943 04 Oct 11 การแสดงข้อมูลใน iframe ตามตำแหน่งที่ต้องการด้วย css อย่างง่าย อ่าน 847 18 Mar 10 การเก็บข้อมูลวันที่ ในฐานข้อมูล กับคำสั่ง sql ในการค้นหา อ่าน 4569 23 Mar 11 เทคนิค หน่วงเวลา กับ event keyup ด้วย jQuery อ่าน 1711 25 Sep 08 ปฏิทินอย่างง่ายด้วย php และ css อ่าน 5051 11 May 10 การจัดข้อความ text direction rotation หมุนข้อความ แนวตั้ง ด้วย css ในตาราง อ่าน 3161 13 Oct 08 คำสั่ง SQL LIKE อ่าน 4447 25 Sep 08 ดึงข้อมูลจากฐานข้อมูลใส่ List Box อ่าน 5504 25 Sep 08 แสดง Code สวยๆ Style Google ด้วยเครื่องมือที่เรียกว่า SyntaxHighlighter อ่าน 5398 13 Jul 10 วิธี load xml ไฟล์ และ แบ่งหน้า ด้วย php อย่างง่าย อ่าน 2775 09 Apr 10 สร้าง countdown นับเวลา ถอยหลัง ด้วย javascript อ่าน 5030 29 Nov 09 กำหนด hilight ของ cell ข้อมูลในตาราง ด้วย jQuery และ CSS อย่างง่าย อ่าน 2608 22 Aug 10 สร้าง waiting page ให้รอสักครู่ ก่อนลิ้งค์ ไปเว็บอื่น ด้วย jQuery และ php อ่าน 2552 12 Sep 10 จัดรูปแบบ NavigationControlOptions ใน Google Map อ่าน 1613 25 Sep 08 PHP MySQL connecting script and function อ่าน 2370 25 Sep 08 Javascript กับเทคนิค Mouseover และ Mouseout อ่าน 4810 11 Feb 11 แนะนำ การใช้งาน jQuery quicksearch plugin อ่าน 2945 30 Oct 10 การเลื่อน jQuery UI tab อัตโนมัติ ตามเวลาที่กำหนด อ่าน 5083 04 Aug 09 การส่งข้อมูลแบบ post ด้วย ajax ของ jquery อ่าน 8729
