آموزش Ajax > کار با شی XmlHttpRequest > بررسی وضعیت
شی XMLHttpRequest با خاصیت readyState
خاصیت readyState در شی XMLHttpRequest :
هنگامی که درخواست خود را به سرور ارسال می کنید بنا بر جواب آن می خواهید تصمیمات
خاصی را لحاظ نمایید .
رویداد( ) onreadystatechange هر زمان که وضعیت Ready State تغییر کند ، رخ می دهد
. خاصیت Ready State وضعیت شی XMLHttpRequest را در هر لحظه نگهداری می کند . بطور
کلی 3 خاصیت یا رویداد در هنگام کار با XMLHttpRequest وجود دارد که بوسیله آن می توان
جواب را از سرور دریافت کرده و بر اساس آن عمل نمود :
- onreadystatechange : این خاصیت یک تابع را نگهداری می کند
. هر زمان که وضعیت خاصیت Ready State شی XMLHttpRequest تغییر کند این رویداد رخ می
دهد و تابع را اجرا می کند .
- readyState : این خاصیت وضعیت شی XMLHttpRequest را در هر لحظه
مشخص می کند . این شی می توان 4 حالت را داشته باشد که بنابر آن یکی از اعداد 0 تا
4 را برمی گرداند :
0 : درخواست دریافت نشده یا جوابی برای آن جدا نشده است .
1 : اعتبار با سرور برقرار شد .
2 : درخواست به سرور رسیده و دریافت شده است .
3 : سرور در حال پردازش درخواست شما است .
4 : درخواست بطور کامل انجام شده و پاسخ آماده است .
- status : این پارامتر وضعیت کلی درخواست و شی را مشخص می کند
. که می تواند 2 حالت داشته باشد :
- 200 : OK
یعنی وضعیت درست است .
- 404 : Page not found
یعنی صفحه یا فایل مورد نظر پیدا نشده است .
نکته : در رویداد onreadystatechange تابعی را تعیین می کنیم
تا در صورتی که جواب سرور به درخواست ما آماده و ارسال شد عمل مورد نظرمان را انجام
دهد . این عمل مورد نظر معمولا عملیات به روز رسانی بخش تغییر کرده در صفحه را انجام
می دهد .
مثال عملی :
در مثال زیر ، در یک دستور شرطی بررسی کرده ایم که اگر جواب سرور یعنی پارامتر readyState
دارای مقدار 4 که به معنای اتمام پردازش درخواست و آماده بودن جواب است ، بود . سپس
وضعیت شی نیز بررسی شود تا چنانچه مقدارش 200 به معتی ok عملیات است ، سپس دستور به
روز رسانی در صفحه اجرا شود :
|
مثال
|
xmlhttp.onreadystatechange=function( )
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById("myDiv").innerHTML=xmlhttp.responseText;
}
}
|
راجع این مطلب
سوال یا اشکالی دارید ؟! آن را در انجمن سایت مطرح نمایید ...
>>>>> ورود به انجمن تخصصی
نطر خودتان درباره این صفحه را با ما در میان بگذارید :