فهرست سرفصل‌های XML
خانه (XML HOME) مقدمه (XML Introduction) نحوه استفاده (XML How to use) درخت (XML Tree) سینتکس (XML Syntax) عناصر (XML Elements) ویژگی ها (XML Attributes) فضاهای نام (XML Namespaces) نمایش (XML Display) XMLHttpRequest (XML HttpRequest) پارسر (XML Parser) DOM (XML DOM) XPath (XML XPath) XSLT (XML XSLT) XQuery (XML XQuery) XLink (XML XLink) اعتبارسنج (XML Validator) DTD (XML DTD) اسکیما (XML Schema) سرور (XML Server) مقدمه (AJAX Introduction) ساخت XMLHttpRequest (AJAX XMLHttp) ارسال درخواست (AJAX Request) پاسخ (AJAX Response) فایل XML (AJAX XML File) AJAX با PHP (AJAX PHP) AJAX با ASP (AJAX ASP) پایگاه داده (AJAX Database) اپلیکیشن ها (AJAX Applications) مثال ها (AJAX Examples) مقدمه (DOM Introduction) گره ها (DOM Nodes) دسترسی (DOM Accessing) اطلاعات گره (DOM Node Info) فهرست گره ها (DOM Node List) پیمایش (DOM Traversing) ناوبری (DOM Navigating) گرفتن مقادیر (DOM Get Values) تغییر گره ها (DOM Change Nodes) حذف گره ها (DOM Remove Nodes) جایگزینی گره ها (DOM Replace Nodes) ساخت گره ها (DOM Create Nodes) افزودن گره ها (DOM Add Nodes) کلون کردن گره ها (DOM Clone Nodes) مثال ها (DOM Examples) مقدمه (XPath Introduction) گره ها (XPath Nodes) سینتکس (XPath Syntax) محورها (XPath Axes) عملگرها (XPath Operators) مثال ها (XPath Examples) مقدمه (XSLT Introduction) زبان ها (XSL Languages) تبدیل (XSLT Transform) الگو (<template>) (XSLT <template>) value-of (<value-of>) (XSLT <value-of>) for-each (<for-each>) (XSLT <for-each>) مرتب سازی (XSLT <sort>) اگر (<if>) (XSLT <if>) انتخاب (XSLT <choose>) اعمال قالب ها (XSLT Apply) در سمت کلاینت (XSLT on the Client) در سمت سرور (XSLT on the Server) ویرایش XML (XSLT Edit XML) مثال ها (XSLT Examples) مقدمه (XQuery Introduction) مثال (XQuery Example) FLWOR (XQuery FLWOR) HTML (XQuery HTML) اصطلاحات (XQuery Terms) سینتکس (XQuery Syntax) افزودن (XQuery Add) انتخاب (XQuery Select) توابع (XQuery Functions) مقدمه (DTD Introduction) بلوک های سازنده (DTD Building Blocks) عناصر (DTD Elements) ویژگی ها (DTD Attributes) عناصر در برابر ویژگی ها (DTD Elements vs Attr) موجودیت ها (DTD Entities) مثال ها (DTD Examples) مقدمه (XSD Introduction) چگونه (XSD How To) برچسب <schema> (XSD <schema>) عناصر (XSD Elements) ویژگی ها (XSD Attributes) محدودیت ها (XSD Restrictions) عناصر پیچیده (XSD Complex Elements) خالی (XSD Empty) فقط عناصر (XSD Elements-only) فقط متن (XSD Text-only) ترکیبی (XSD Mixed) نشانگرها (XSD Indicators) <any> (XSD <any>) <anyAttribute> (XSD <anyAttribute>) جایگزینی (XSD Substitution) مثال (XSD Example) رشته (XSD String) تاریخ/زمان (XSD Date/Time) عددی (XSD Numeric) متفرقه (XSD Misc) مرجع (XSD Reference) سرویس ها (XML Services) WSDL (XML WSDL) SOAP (XML SOAP) RDF (XML RDF) RSS (XML RSS) مثال ها (XML Examples) آزمون (XML Quiz) سیلابس (XML Syllabus) برنامه مطالعه (XML Study Plan) گواهینامه (XML Certificate) انواع گره (DOM Node Types) گره (DOM Node) NodeList (DOM NodeList) NamedNodeMap (DOM NamedNodeMap) سند (DOM Document) عنصر (DOM Element) ویژگی (DOM Attribute) متن (DOM Text) CDATA (DOM CDATA) کامنت (DOM Comment) XMLHttpRequest (DOM XMLHttpRequest) پارسر (DOM Parser) المان ها (XSLT Elements) توابع (XSLT/XPath Functions)
نتیجه‌ای برای جستجو یافت نشد.
XML

XML — پاسخ (AJAX Response)

آخرین بروزرسانی: 1404/08/17

پاسخ (AJAX Response)

اینجا «پاسخ آژاکس» را می خوانیم. آژاکس یعنی دریافت پاسخ بدون رفرش صفحه. مثل وقتی نمره آنلاین، سریع روی همان صفحه می آید.

onreadystatechange و readyState

ویژگی readyState وضعیت درخواست را نگه می دارد. رویداد onreadystatechange هر بار با تغییر وضعیت اجرا می شود. همچنین status و statusText نتیجه HTTP را نشان می دهند.

  1. یک تابع روی onreadystatechange تنظیم کن.
  2. در حالت 4 و وضعیت 200، پاسخ آماده است.
  3. پاسخ را در صفحه نمایش بده.
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();
}

مشاهده در ادیتور

خلاصه وضعیت ها و کدها

ویژگیتوضیح
readyState0: شروع نشده، 1: اتصال، 2: دریافت، 3: پردازش، 4: آماده
statusمانند 200 OK، 403 Forbidden، 404 Not Found
statusTextمتن وضعیت مانند "OK"

نکته: رویداد onreadystatechange چهار بار برای وضعیت های 1 تا 4 رخ می دهد.

الگوی تابع بازگشتی (Callback)

تابع بازگشتی (Callback) یعنی تابعی که به تابع دیگر پاس می دهی تا بعداً اجرا شود. برای چند کار آژاکسی، یک اجراکننده و چند Callback بساز.

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 DOM

متدهای خواندن هدر پاسخ

متدتوضیح
getResponseHeader()گرفتن یک هدر خاص
getAllResponseHeaders()گرفتن همه هدرها

responseText: متن پاسخ

می خواهی متن خام را نشان بدهی؟ از responseText استفاده کن.

document.getElementById("demo").innerHTML = xhttp.responseText;

مشاهده در ادیتور

responseXML: پاسخ به صورت XML

شیء XMLHttpRequest پارسر XML داخلی دارد. می توانی XML را مثل درخت بخوانی.

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 استفاده کن.

var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
  if (this.readyState == 4 && this.status == 200) {
    document.getElementById("demo").innerHTML = this.getAllResponseHeaders();
  }
};

مشاهده در ادیتور

گرفتن یک هدر خاص

فقط یک هدر لازم داری؟ نام هدر را بده و بخوان.

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();

مشاهده در ادیتور

پیوندهای داخلی

برای ارسال، صفحه ارسال درخواست آژاکس را ببین. برای شروع از ابتدا، ساخت شیء XMLHttpRequest را بخوان. همچنین برای XML بعدی، فایل XML در AJAX را دنبال کن.

جمع بندی سریع

  • پاسخ آژاکس با readyState و status سنجیده می شود.
  • responseText متن خام را برمی گرداند.
  • responseXML یک شیء DOM می دهد.
  • getResponseHeader و getAllResponseHeaders هدرها را می دهند.
  • Callback ها کد را تمیز و ماژولار می کنند.