$.ajax async คือคำสั่งกำหนดให้เป็นการสื่อสารแบบ asynchronously หรือไม่ โดยปกติมี 2 ค่าคือ true และ false ต่างกันที่ถ้า true จะทำงานโดยไม่ต้องรอกัน ถ้า false คือต้องรอให้ทำงานเสร็จก่อนจึงทำงานในส่วนต่อไป มีรายละเอียดดังนี้
ตัวอย่างที่ 1 $.ajax async กำหนดเป็น true (เป็นค่า default)
<script>
$.ajax({
type: "POST",
url: "submit.php",
async: true,
success: function( data ) {
console.log( data );
}
});
console.log( 'Hello 2' );
</script>
<?php
// ไฟล์ submit.php
echo "Hello 1";
?>
ผลลัพธ์
Hello 2
Hello 1
จากตัวอย่างกำหนด async เป็น true หรือไม่กำหนด (default เป็น true) โปรแกรมจะไม่รอการตอบกลับจากไฟล์ submit.php จากผลลัพธ์โปรแกรมจะแสดง hello 2 ก่อนเลยเพราะทำงานเสร็จก่อน และเมื่อไรที่ submit.php ทำงานเสร็จก็จะแสดง hello 1 เป็นการทำงานแบบไม่ต่อเนื่อง ไม่ต้องรอกัน ใครทำงานเสร็จก่อนแสดงผลก่อน
ตัวอย่างที่ 2 $.ajax async กำหนดเป็น false
<script>
$.ajax({
type: "POST",
url: "submit.php",
async: false,
success: function( data ) {
console.log( data );
}
});
console.log( 'Hello 2' );
</script>
<?php
// ไฟล์ submit.php
echo "Hello 1";
?>
ผลลัพธ์
Hello 1
Hello 2
จากตัวอย่างกำหนด async เป็น false โปรแกรมจะรอการตอบกลับจากไฟล์ submit.php ก่อน ทำให้ได้ผลลัพธ์เป็น hello 1 และ hello 2 ตามลำดับเป็นการทำงานแบบต่อเนื่อง รอกัน ตามคิวของการทำงาน