بخش های اصلی

آموزش AJAX

آموزش AJAX – شیءِ XMLHttpRequest

شیءِ XMLHttpRequest، کلیدی برای AJAX است. این شیء از زمانی که Internet Explorer 5.5 در جولای سالِ 2000 منتشر شده، وجود داشته ولی تا زمانی که AJAX و Web 2.0 در سال 2005 مشهور شدن، هنوز کاملاً شناخته نشده بود.

XMLHttpRequest (XHR)، APIایِه که جاوا اسکریپت، Jscript، VBScript و دیگر زبان های اسکریپت نویسی مرورگر، از آن برای انتقال و تغییر داده هایِ XML به/از وب سرور با استفاده از HTTP و برای ایجاد یک کانال ارتباطی مستقل بین یک صفحه ی وب سمت کلاینت و سمت سرور، استفاده می کنن.

اغلب داده ای که از فراخوانی XMLHttpRequest برگردانده شده، توسط پایگاه داده ی back-end فراخوانی میشه. در کنارِ XML می توان از XMLHttpRequest برای واکشی داده ها با فرمت های دیگه (مثل JSON یا حتی متن ساده) استفاده کرد.

تا اینجا دو مثال در زمینه ی نحوه ی ایجاد شیء XMLHttpRequest مشاهده کردین.

در ادامه لیستی از برخی از متدها و پراپرتی هایی که باید با آن ها آشنا بشین آورده شده.

متدهایِ XMLHttpRequest

  • abort()
    درخواست جاری را کنسل می کنه.
  • getAllResponseHeaders()
    مجموعه ی کاملی از سرآیندهایِ HTTP را بصورت رشته برمی گرداند.
  • getResponseHeader( headerName )
    مقدار سرآیندِ HTTPیِ خاصی را برمی گرداند.
  • open( method, URL )
    open( method, URL, async )
    open( method, URL, async, userName )
    open( method, URL, async, userName, password )
    متد، URL و دیگر خصیصه های اختیاریِ درخواست هستند.
    پارامتر متد، یکی ازمقادیرِ “GET”، “POST” یا “HEAD” را می پذیرد. متدهای HTTPیِ دیگه، مثلِ “PUT” و “DELETE” (که در درجه ی اول در برنامه های REST استفاده میشن) هم قابل استفاده هستن.
    پارامترِ “async” مشخص می کنه که درخواست بصورت ناهمگام هَندِل بشه یا نه. مقدارِ “true” به این معنیِه که پردازش اسکریپت بدون منتظر ماندن برای پاسخ، بعد از متدِ send() اجرا میشه، و “false” به این معنیِه که اسکریپت قبل از ادامه ی پردازشِ اسکریپت، منتظر پاسخ می ماند.
  • send( content )
    درخواست را ارسال می کنه.
  • setRequestHeader( label, value )
    یک جفت لیبل/مقدار به سرآیندِ HTTP اضافه می کنه تا فرستاده بشه.

پراپرتی هایِ XMLHttpRequest

  • onreadystatechange
    یک event handler برای رویدادِه که هر وقت که وضعیت (state) تغییر کنه اجرا میشه.
  • readyState
    پراپرتیِ readyState، وضعیت جاریِ شیءِ XMLHttpRequest را تعریف می کنه.
    در جدول زیر لیستی از مقادیر ممکن برای پراپرتیِ readyState آورده شده:

وضعیت

توضیحات

0

درخواست مقداردهی اولیه نشده.

1

درخواست ایجاد نشده.

2

درخواست فرستاده نشده.

3

درخواست در حال پردازش است.

4

درخواست تکمیل شده.

readyState = 0 بعد از این که شیءِ XMLHttpRequest را ایجاد کردین، ولی قبل از این که متدِ open() را فراخوانی کنین.

readyState = 1 بعد از این که متدِ open() را فراخوانی کردین، ولی قبل از این که متدِ send() را فراخوانی کنین.

readyState = 2 بعد از این که متدِ send() را فراخوانی کردین.

readyState = 3 بعد از این که مرورگر با سرور ارتباط برقرار کرد، ولی قبل از این که سرور پاسخ را تکمیل کنه.

readyState = 4 بعد از این که درخواست تکمیل شد، و اطلاعات پاسخ، کاملاً از سمت سرور دریافت شد.

  • responseText
    پاسخ را بصورت رشته برمی گرداند.
  • responseXML
    پاسخ را بصورت XML برمی گرداند. این پراپرتی یک شیءِ سندِ XML برمی گرداند که می توان با استفاده از متدهای W3C DOM node tree و پراپرتی ها، آن را مورد بررسی قرار داد و تجزیه و تحلیل کرد.
  • status
    وضعیت (status) را بصورت یک عدد برمی گرداند (مثل، 404 بجایِ "یافت نشد" و 200 بجایِ "خوبه").
  • statusText
    وضعیت (status) را بصورت یک رشته برمی گرداند (مثل، "پیدا نشد" یا "خوبه").
در صورتی که سوال و یا نظری دارید، از بخش نظرات با ما در میان بگذارید.

خبـرنــامه

Newsletters

در خبــرنـامه سافت اسکیل عضو شویــد تا جدیدترین هـای سایت را بلافاصله در ایمیل خـود دریافت کنیـد

شما چه نظر و یا سوالی درباره این نوشته دارید؟

مبحث آموزشی

آموزش AJAX

Learn AJAX

پرســیدن سؤال جدید

سؤال های تخصصی خود را از ما بپرسید

دنبال کردن تلگرام کانال سافت اسکیل

https://telegram.me/softskill_ir

عملیات کاربران

خبـرنــامه

Newsletters

در خبــرنـامه سافت اسکیل عضو شویــد تا جدیدترین هـای سایت را بلافاصله در ایمیل خـود دریافت کنیـد