ادامه مثال ....

 پاسخ سرور
 برای دریافت پاسخ از سرور ، از یکی از دو  ویژگی شی XMLHttpRequest  یعنی  responseText یا responseXML  استفاده نمائید
 

 responseText :

داده های جواب را بصورت یک رشته دریافت می کند

 responseXML:

داده های جواب  را بصورت یک داده از نوع xml دریافت می کند

 
 
ویژگی responseText
 اگر پاسخ سرور یک xml  نیست ، از ویژگی responseText  استفاده کنید
 ویژگی responseText  پاسخ را بصورت یک رشته بر می گرداند
 و شما مثلا می توانید از ان بصورت مثال زیر استفاده کنید :
 
document.getElementById("myDiv").innerHTML=xmlhttp.responseText;
 
 دستور بالا یک دستور جاوا اسکریپت است

 کلمه document :

یعنی در صفحه وب فعلی ( ان صفحه ای که کاربر دارد مشاهده می کند )

کلمه  getElementById  :

یعنی برای تگ هایی که اسم ویژگی id انها ان چیزی است که در پرانتز گفته شده

( در این مثال برای تگ هایی که ای دی انها برابر myDiv است )

 

 کلمه innerHTML :

یعنی دستورات html درون ان تگی که اسمش mydiv بود تغییر کند و بشود ان چیزی که جلوی علامت مساوی است

 

 عبارت xmlhttp.responseText :

همان رشته ای است که از سرور بر گشت داده شده است این رشته در این مثال می تواند مجموعه ای از دستورات html باشد

 

 مثلا : ممکن است در صفحه وبی که کاربر در حال بازدید ان است mydiv اسم تگ لایه باشد بصورت زیر :

 

 <div id="mydiv">

         <p> hello </p>

         <h1> goodbue </h1>

</div>

 درون این تگ mydiv ، دستورات html همان تگهای , h1 p و محتوای انها می باشد
 

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

 

 

"<h6> today <h6> "

 

 در نتیجه با توجه به دستوراتی که قبلا در مثال داشتیم ، دستور تگ <h6> که از سرور بر گشته جایگزین تگهای p , h1  درون تگ با ای دی mydiv می شود
 
 مشاهده و اجرای برنامه کامل
 
ویژگی responseXML
 اما اگر پاسخ دریافتی از سرور یک فایل xml است ، از ویژگی responseXML  استفاده کنید
 مثال:
 فرض کنید فایل xml به نام cd_catalog.xml  در سرور موجود است
 حالا محتوای این فایل بعنوان پاسخ به مرورگر رایانه کاربری که در حال مشاهده صفحه وب شماست ارسال می شود
 

 

دستورات زیر روش استفاده از محتوای این صفحه xml است :

 

xmlDoc=xmlhttp.responseXML;
txt="";
x=xmlDoc.getElementsByTagName("ARTIST");
for (i=0;i<x.length;i++)
  {
  txt=txt + x[i].childNodes[0].nodeValue + "<br>";
  }
document.getElementById("myDiv").innerHTML=txt;

 

 متغیر amldoc :

برابر فایل xml دریافتی از سرور می شود

 متغیر txt :

برابر رشته خالی است

 دستور جاوا اسکریپت زیر

x=xmlDoc.getElementsByTagName("ARTIST");

ا

دقت کنید اگر با کلیک روی کلمه  cd_catalog.xml   فایل xml را باز کرده و مشاهده نموده باشید دیده اید که ما در کل فایل xml چندین تگ artist داریم

 

این دستور باعث ایجاد یک ارایه به نام X می شود که اندیس اول ان از صفر است

و هر خانه X به یکی از تگ های Artist در فایل xml بازگشتی اشاره می کند

 

 

:  for (i=0;i<x.length;i++)

x.lenght یعنی تعداد خانه های ارایه x

برای تمام خانه های ارایه x دستورات حلقه انجام می شود

اندیش خانه اول صفر است

اندیس خانه اخر ارایه یکی کمتر از تعداد کل خانه های ارایه است

 

 

    txt=txt + x[i].childNodes[0].nodeValue + "<br>";

یعنی

 مقدار اولین نوود موجود در تگ i امین تگ artist

چون در هر تگ artist ما تگ دیگری نداریم پس منظور از نوود همان محتوای موجود در هر تگ می شود

 

برای اینکه با childnode و امثال ان اشنا شوید باید با اشیای dom در xml اشنا شوید

 

 

document.getElementById("myDiv").innerHTML=txt;

یعنی

دستورات html درون تگی که نام ای دی ان برابر mydiv است و این تگ در همین صفحه وب قرار دارد برابر  با ان چیزی شود که در متغیر txtقرار گرفته است

 
 مشاهده و اجرای برنامه کامل