1. مهمان گرامی، جهت ارسال پست، دانلود و سایر امکانات ویژه کاربران عضو، ثبت نام کنید.
    بستن اطلاعیه

آموزش Ajax /خاصیت readyState

شروع موضوع توسط Amon Amarth ‏20/4/13 در انجمن Ajax

  1. کاربر ارشد

    تاریخ عضویت:
    ‏7/6/12
    ارسال ها:
    12,082
    تشکر شده:
    28,151
    امتیاز دستاورد:
    113
    جنسیت:
    مرد
    آموزش Ajax /خاصیت readyState


    خاصیت readyState در شی XMLHttpRequest :
    هنگامی که درخواست خود را به سرور ارسال می کنید بنا بر جواب آن می خواهید تصمیمات خاصی را لحاظ نمایید .
    رویداد( ) onreadystatechange هر زمان که وضعیت Ready State تغییر کند ، رخ می دهد . خاصیت Ready State وضعیت شی XMLHttpRequest را در هر لحظه نگهداری می کند . بطور کلی 3 خاصیت یا رویداد در هنگام کار با XMLHttpRequest وجود دارد که بوسیله آن می توان جواب را از سرور دریافت کرده و بر اساس آن عمل نمود :


    1. [*=right]onreadystatechange : این خاصیت یک تابع را نگهداری می کند . هر زمان که وضعیت خاصیت Ready State شی XMLHttpRequest تغییر کند این رویداد رخ می دهد و تابع را اجرا می کند .
      [*=right]readyState : این خاصیت وضعیت شی XMLHttpRequest را در هر لحظه مشخص می کند . این شی می توان 4 حالت را داشته باشد که بنابر آن یکی از اعداد 0 تا 4 را برمی گرداند :
      0 : درخواست دریافت نشده یا جوابی برای آن جدا نشده است .
      1 : اعتبار با سرور برقرار شد .
      2 : درخواست به سرور رسیده و دریافت شده است .
      3 : سرور در حال پردازش درخواست شما است .
      4 : درخواست بطور کامل انجام شده و پاسخ آماده است .
      [*=right]status : این پارامتر وضعیت کلی درخواست و شی را مشخص می کند . که می تواند 2 حالت داشته باشد :
      1. 200 : OK
        یعنی وضعیت درست است .
      2. 404 : Page not found
        یعنی صفحه یا فایل مورد نظر پیدا نشده است .
    نکته : در رویداد onreadystatechange تابعی را تعیین می کنیم تا در صورتی که جواب سرور به درخواست ما آماده و ارسال شد عمل مورد نظرمان را انجام دهد . این عمل مورد نظر معمولا عملیات به روز رسانی بخش تغییر کرده در صفحه را انجام می دهد .

    مثال عملی :
    در مثال زیر ، در یک دستور شرطی بررسی کرده ایم که اگر جواب سرور یعنی پارامتر readyState دارای مقدار 4 که به معنای اتمام پردازش درخواست و آماده بودن جواب است ، بود . سپس وضعیت شی نیز بررسی شود تا چنانچه مقدارش 200 به معتی ok عملیات است ، سپس دستور به روز رسانی در صفحه اجرا شود :
    [TABLE="class: ex"]
    [TR]
    [TD="class: prname"] مثال [/TD]
    [TD="class: prdes, align: left"] xmlhttp.onreadystatechange=function( )
    {
    if (xmlhttp.readyState==4 && xmlhttp.status==200)
    {
    document.getElementById("myDiv").innerHTML=xmlhttp.responseText;
    }
    } [/TD]
    [/TR]
    [/TABLE]
    منبع: developer1
     
    یک شخص از این تشکر کرد.