رویداد onreadystatechange
زمانی که تقاضایی به سرور ارسال می شود ، ما می خواهیم کارهایی را بر پایه پاسخی که از سرور دریافت خواهیم کرد انجام دهیم
 
رویداد onreadystatechange هر وقتی که readyState تغییر کند رخ می دهد
 
 ویژگی readyState  وضعیت XMLHttpRequest را نگه می دارد
 
 سه ویژگی مهم XMLHttpRequest  عبارت اند از :
 
  •  onreadystatechange
 یک تابع یا همان نام تابع را در خود دارد که این تابع هر وقت که مقدار ویژگی readyState  تغییر کرد به طور خودکار فراخوانی و اجرا می شود
 
  •  readyState

 وضعیت XMLHttpRequest را در خود نگه می دارد

مقدار از از صفر تا 4 متغیر است

0 : تقاضایی از سرور هنوز صورت نگرفته است

1: اتصال به سرور برقرار است

2:تقاضایی دریافت شد

3:پردازش جواب

4: تقاضا تمام شد و پاسخ اماده است

 
  •  status

 200 : یعنی ok

404 : صفحه پیدا شند

 
 
 
 در رویداد onreadystatechange ما مشخص می کنیم که چه چیزی اتفاق خواهد افتاد زمانیکه پاسخ سرور اماده پردازش است
 
 زمانیکه readyState  برابر 4  و status  برابر 200 باشد  پاسخ سرور اماده استفاده است
 
 مثال

 

xmlhttp.onreadystatechange=function()
  {
  if (xmlhttp.readyState==4 && xmlhttp.status==200)
    {
    document.getElementById("myDiv").innerHTML=xmlhttp.responseText;
    }
  }

 
 رویداد onreadystatechange  از صفر تا 4 بار از خود واکنش نشان می دهد عر بار برای یکی از وضعیت هایی که برای readyState اتفاق افتاده است
 
استفاده از تابع callback
 تابع  callback تابعی است که بصورت پارامتر به تابع دیگری پاس داده می شود

 اگر شما بیشتر از یک فرایند آژاکسی در صفحه وب خود دارید ، شما باید یک تابع استانداری برای ایجاد شی XMLHttpRequest  داشته باشید

و بعد این تابع را برای هر فرایند آژاکس صدا بزنید

 
 تابعی که صدا می زنید باید شامل یک url  و اینکه بر پایه onreadystatechange  چه کارهایی باید انجام دهد باشد ( که onreadystatechange  برای هر فراخوانی این تابع ممکن است متفاوت باشد )
 
 مثال

 

function myFunction()
{
loadXMLDoc("ajax_info.txt",function()
  {
  if (xmlhttp.readyState==4 && xmlhttp.status==200)
    {
    document.getElementById("myDiv").innerHTML=xmlhttp.responseText;
    }
  });
}