با سلام خدمت کاربران گرامی سایت پی وی لرن و علاقمندان و کاربرانی که علاقمند به یادگیری دوره XML هستند. در جلسه گذشته در خصوص Request و کاربرد آن در AJAX مطالبی مطرح شد. در این جلسه و در بیست و سومین جلسه از دوره آموزش XML با آموزش کار با Server Response در AJAX همراه شما هستیم.
ویژگی readyState وضعیت XMLHttpRequest را نگه می دارد.
زمانی که حالت readyState تغییر می کند ویژگی onreadystatechange تعریف یک تابع را اجرا می کند.
ویژگی های status و statusText وضعیت XMLHttpRequest object را حفظ می نماید.
ویژگی | توضیحات |
onreadystatechange | هنگام تغییر ویژگی readyState تابعی را که قرار است فراخوانی شود تعریف می نماید. |
readyState | وضعیت XMLHttpRequest را نگه می دارد. ۰: درخواست اولیه نشده است ۱: اتصال به سرور برقرار شد ۲: درخواست دریافت شد ۳: درخواست پردازش ۴: درخواست تکمیل شده و پاسخ آماده است |
status | ۲۰۰: “خوب” ۴۰۳: “ممنوع” ۴۰۴: “صفحه یافت نشد” برای مشاهده لیست کامل به Http Messages Reference مراجعه کنید |
statusText | وضعیت متن (مثلا “OK” یا “Not Found”) را بازمی گرداند |
هر زمان که readyState تغییر کند تابع onreadystatechange فراخوانی می گردد.
و هرگاه که readyState بر روی ۴ باشد و status نیز بر روی ۲۰۰ در آن صورت پاسخ آماده است:
1 2 3 4 5 6 7 8 9 10 11 | function loadDoc() { var xhttp = new XMLHttpRequest(); xhttp.onreadystatechange = function() { if (this.readyState == 4 && this.status == 200) { document.getElementById("demo").innerHTML = this.responseText; } }; xhttp.open("GET", "ajax_info.txt", true); xhttp.send(); } |
رویداد onreadystatechange چهار مرتبه (۱-۴)، یک بار برای هر تغییر در readyState فعال می شود.
یک تابع Callback تابعی است که به عنوان یک پارامتر به یک تابع دیگر منتقل می شود.
اگر بیش از یک AJAX task در وب سایت خود دارید، در آن صورت باید یک تابع برای اجرای XMLHttpRequest object ایجاد کنید و یک تابع callback برای هر یک از کارهای AJAX.
تابع فراخوانی شده باید حاوی URL و قابلیت فراخوانی تابع هنگام آماده بودن پاسخ، باشد.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | loadDoc("url-1", myFunction1); loadDoc("url-2", myFunction2); function loadDoc(url, cFunction) { var xhttp; xhttp=new XMLHttpRequest(); xhttp.onreadystatechange = function() { if (this.readyState == 4 && this.status == 200) { cFunction(this); } }; xhttp.open("GET", url, true); xhttp.send(); } function myFunction1(xhttp) { // action goes here } function myFunction2(xhttp) { // action goes here } |
ویژگی | توضیحات |
responseText | داده های پاسخ را به عنوان یک رشته دریافت می کند. |
responseXML | داده های پاسخ را به عنوان داده های XML دریافت می کند. |
روش | توضیحات |
()getResponseHeader | اطلاعات header خاصی را از منابع سرور بازگردانی می نماید. |
()getAllResponseHeaders | تمام اطلاعات header را از منابع سرور باز گردانی می کند. |
Property responseText پاسخ سرور را به عنوان یک رشته جاوا اسکریپت باز میگرداند تا بتوانید از آن استفاده نمایید.
1 | document.getElementById("demo").innerHTML = xhttp.responseText; |
XML HttpRequest object دارای یک تجزیه کننده XML است.
ویژگی responseXML پاسخ سرور را به عنوان یک XML DOM object بازگردانی می کند.
با استفاده از این ویژگی می توانید پاسخ را به عنوان یکXML DOM object تجزیه کنید:
1 2 3 4 5 6 7 8 9 | xmlDoc = xhttp.responseXML; txt = ""; x = xmlDoc.getElementsByTagName("ARTIST"); for (i = 0; i < x.length; i++) { txt += x[i].childNodes[0].nodeValue + "<br>"; } document.getElementById("demo").innerHTML = txt; xhttp.open("GET", "cd_catalog.xml", true); xhttp.send(); |
روش ()getAllResponseHeaders تمام اطلاعات header را از پاسخ سرور server response بازگردانی می نماید.
1 2 3 4 5 6 7 | var xhttp = new XMLHttpRequest(); xhttp.onreadystatechange = function() { if (this.readyState == 4 && this.status == 200) { document.getElementById("demo").innerHTML = this.getAllResponseHeaders(); } }; |
روش ()getResponseHeader اطلاعات header خاصی را از پاسخ سرور باز گردانی می نماید.
1 2 3 4 5 6 7 8 9 | var xhttp = new XMLHttpRequest(); xhttp.onreadystatechange = function() { if (this.readyState == 4 && this.status == 200) { document.getElementById("demo").innerHTML = this.getResponseHeader("Last-Modified"); } }; xhttp.open("GET", "ajax_info.txt", true); xhttp.send(); |
در این جلسه آموزش کار با Server Response در AJAX را به علاقمندان این دوره ارائه کردیم.
در جلسه بعدی شما را به فراگیری کار با PHP در AJAX دعوت می کنیم.
با پی وی لرن همراه باشید.