» مقالات » مقالات هایبرد » نمونه سازی XMLHTTPREOUEST (آموزش Ajax)

نمونه سازی XMLHTTPREOUEST (آموزش Ajax)

نمونه سازی XMLHTTPREOUEST (آموزش Ajax)

5901  تعداد بازدید  |  شنبه 11 مهر ماه 1394

به شما پیشنهاد میشود اگر به مبانی جاوا آشنایی ندارید به ضمیمه این کتاب مراجعه کنید. « XMLHttpRequest » همه چیز زیر سر شئ ای به نام XMLHTTPREQUEST است که تمام یا بهتر ، بیشتر کارهای طراحی سایت را انجام میدهد. مراحلی کار به این صورت است که در اولین مرحله باید از شئ XMLHTTPREQUEST یک نمونه سازی انجام دهیم (اگر متوجه نمیشوید به ضمیمه مبانی جاوا مراجعه کنید.)

به شما پیشنهاد میشود اگر به مبانی جاوا آشنایی ندارید به ضمیمه این کتاب مراجعه کنید.
« XMLHttpRequest » همه چیز زیر سر شئ ای به نام XMLHTTPREQUEST است که تمام یا بهتر ، بیشتر کارهای طراحی سایت را انجام میدهد. مراحلی کار به این صورت است که در اولین مرحله باید از شئ XMLHTTPREQUEST   یک نمونه سازی انجام دهیم (اگر متوجه نمیشوید به ضمیمه مبانی جاوا مراجعه کنید.)

 همانطور که در بالا گفته شد ای جکسی در مرورگر شما اجرا میشود. ما دو گونه مرورگر داریم:

• مرورگری که متعلق به مایکروسافت باشد(Internet Explorer)

• مرورگری که متعلق به مایکروسافت نباشد(مانند FireFox)

 البته این تقسیم بندی بسیار کلی است و همین برای کار ما بس است.

 وارد اولین مرحله کار میشویم یعنی نمونه سازی از شئ XMLHTTPREOUEST (همانطور که می دانید محل نوشتن کدهای جاوا درون تگ << script مابین تگHEAD>  >  می باشد )


XmlHttp new ActiveXObjectMicrosoft.XMLHTTP))))


خب ما به همین راحتی یک نمونه سازی از شئ خود انجام دادیم. حال توضیحات:
عبارتVAR برای تعریف متغیر استفاده میشود مراجعه شود به ضمیمه مبانی جاوا. کلمه مقابل VAR به عنوان متغییر تلقی میشود. در این جا ما متغیر خود را XMLHTTP نام نهادیم. نام گذاری متغیر همانند نام گذاری فرزند بسیار اهمیت دارد چرا که نام گذاری نیکو و اصولی از قواعد کار است! چون که در آینده از دیدن نام متغیر سردرگم نشوید حال باید از شی یک نمونه سازی در متغیر انجام دهیم. عبارت برای نمونه سازی از اشیا استفاده میشود. بنابراین بعد از کلمه کلیدی (اگر منظور از کلمات کلیدی را نمیدانید به ضمیمه مراجعه کنید) نام شئ باید آورده شود. خب حالا به عبارت ترسناک (ACTIVEXOBJECTMICROSOFTXMLHTTP) می رسیم. این عبارت را سعی کنید حفظ نمایید. زیرا همیشه به همین صورت به کار می رود زیاد هم ترسناک نیست. این عبارت شئ از ACTIVEXOBJECT به نام MICROSOFT XMLHTTP را در متغیر XMLHTTP که قبلا تعریف کردیم، نمونه سازی می کند.
پس ما تا اینجا یک شئ XMLHTTPREQUEST برای یک مرورگر مایکروسافتی که همان IE باشد نمونه سازی کردیم و آماده ادامه کار هستیم. اینجا یک مشکلی ممکن است پیش آید . امکان دارد که کاربر ما مثل بیل گیتس طرفدار پروپاقرصی مایکروسافت نباشد بلکه مثلا از مرورگر FIREFOX استفاده کنند. در این حالت ما نمیتوانیم از ACTIVEXOBJECT برای نمونه سازی استفاده کنیم. پس مجبوریم رویه دیگری را در پیش بگیریم.



Var xmlHttp

xmlHttp = new XMLHttpRequest()


این روش نمونه سازی مخصوصی مرورگرهای غیر مایکروسافتی است. تمام توضیحات مثلی مثالی قبلی فقط اسم - شئ ما تغییر یافته به XMLHTTPREQUEST .
حال با این دو حالت چه کار میتوان کرد. یا مرورگر مایکروسافتی است یا غیر مایکروسافتی. پس باید از قواعد شرطی استفاده کرد) اگر با این قواعد آشنایی ندارید به ضمیمه مراجعه کنید.( در این قاعده ما میخواهیم به یک نتیجه بر یم و آن اینکه اگر مرورگر مایکروسافتی است ACTIVEXOBJECTMICRO SOFT XMLHTTP و اگر مرورگر غیر مایکروسافتی است یکی شئ MLHTTPREQUEST)نمونه سازی شود. پس داریم:



if (window.ActiveXObject) {

xmlHttp =new ActiveXObjectMicrosoft.XMLHTTP);

{else}

xmlHttp =new XMLHttpRequest ()

 

خب به همین راحتی برنامه کوچک ما تشخیص میدهد که آیا مرورگر مایکروسافتی است یا خیر، اگر هست یک نوع شئ و اگر نیست نوع دیگری را نمونه سازی میکند (البته در 7 INTERNET EXPLORER این مشکلی مرتفاع شده و می توان از شئ دوم هم استفاده کرد.

 توضیحات:
عبارت جلوی یک شرط منطقی را بررسی میکند. اگر شرط درست باشد مقدار TRUE میشود و دستورات مورد نظر اجرا میگردد. در اینجا اگر مرورگر از ACTIVEXOBJECT پشتیبانی کند پس به طور حاتم مایکروسافتی است. این شرط همانند این است که بگوییم ان چیست که فرمان و چهار چرخ دارد بدون شک همگی میگوییم یک خودروپس اگر مرورگری از ACTIVEXOBJECT پشتیبانی انجام دهد حتما مرورگر مایکروسافتی INTERNET EXPLORER است. حال اگر مرورگر از ACTIVEXOBJECT پشتیبانی نمی کند غیر مایکروسافتی است. برای مثال PIREFOX. اما برای کاتدیگر شرطی نمیگذاریم. چرا که اگر حالت اولی یعنی مایکروسافتی بودن نقضی شود پس فقط یک حالت غیر مایکروسافتی می ماند و شیع خود را با XMLHTTPREOUEST نمونه سازی میکنیم.
اگر حواسی جمع باشد خواهید پرسید پسی تعریف متغیر ما کجاست VARXMLHTTP. جواب این است که تمام دستورافوق که برای نمونه سازی انجام دادیم در یک تابع قرار میگیرد:

 


 var xmlHttp null;

function CreteXmlHttpRequest()

{

If (windowActiveXObject){

    xmlHttp = new ActiveXObject (Microsoft.XMLHTTP’)

}

Else[

    xmlHttp = new XmlHttpRequest()

}

Return    xmlHttp

}


زیاد نگران نباشید بسیار سهل و آسان است. این تابعی که نوشته ایم یک شایع از نوع XMLHTTPREOUEST یا . as, ACTIVEXOBJECTMICROSOFT.XMLHTTP)
کلمه کلیدی FUNCTION برای تعریف انواع تابع استفاده میشود. نام تابع خود را CREATEXMLHTTPREOUEST نهادیم. که از همان قواعد نام گذاری نیکو بهره بردیم.
همانطور که به دو پرانتز دقت کردید متوجه شدید که تابع پارامتر ورودی ندارد. ولی این تابع یک مقدار خروجی دارد. این مقدرا خروجی بعد از کلمه کلیدی RETURN قرار دارد. هر مقدار که توسط RETURN مشخصی شود به برنامه بازگشت داده میشود. برای مثال در همین تابع مقدار XMLHTTP که یک شی از نوع ACTIVEXOBJECTMICROSOFT.XMLHTTP)  یاXMLHTTPREQUEST به بدنه برنامه بازگردانده  میشود. قواعد شرطی IP هم که نیازی به به توضیحات ندارد در بالا توضیح داده شد.
 پس این تابع که با نام CREATEXMLHTTPREOUEST نام گذاری شد در هرجای برنامه که نیازی به نمونه سازی از شئ داشته باشیم این کار را برای ما انجام میدهد.
 اما عبارت VAR XMLHTTP=NULL برای ما چه خدمتی انجام میدهد. این عبارت متغییر XMLHTTP را تعریف کرده و مقدار ایالایا پوچ را به ان نسبت میدهد. چرا که ما برای شروع هنوز متغیر را مقدار دهی یا نمونه سازی نکرده ایم پس مقدار  null می پذیرد. حال چرا این تعریف متغیر در بالا تابع ما آمده. زیرا ما نیاز داریم این متغیر که بعدها توسط تابع ما نمونه سازی میشود در کلی برنامه استفاده کنیم. پس اگر این متغییر درون تابع تعریف می شد قابلیت استفاده در کلی برنامه را نداشت.
 پس برای شروع چنین صفحه ای داریم.



<Html>

<Head>

script language=”javascrip”>

 var xmlHttp = null

function CreateXmlHttpRequest()

{

 if (window.ActiveXObject)

{

 xmlHttp =new ActiveXObject(‘Microsoft.XMLHTTP);

} else{

 xmlHttp= new XMLHttpRequest()

}

Return xmlHttp

}

</script>

<title>Usingn ajax </title>

</head>

</body>

</html>


 

مقالات مرتبط به طراحی سایت :

کاربرد ای جکس (آموزش Ajax)
خصوصیت readyState (آموزش Ajax)
متد open/متد send (آموزش Ajax)
نمونه سازی XMLHTTPREOUEST (آموزش Ajax)