از xmlhttprequest بدانید!

تا به حال درباره گران ترین دامنه های اینترنتی جهان شنیده اید؟
2015-10-12
آموزش ajax ـ متد open و متد send
2015-10-13

از xmlhttprequest بدانید!

از xmlhttprequest بدانید!

در ابتدا باید برایتان بگوییم در صورتی که آشنایی با مبحث جاوا ندارید، ابتد درباره جاوا و آموزش جاوا اطلاعاتی را کسب کرده، سپس به ادامه مراجعه کنید و از این مطلب بهره لازم را ببرید. ، xmlhttprequest در ابتدا برایتان می خواهیم از این مبحث بسیار جذاب بگوییم، در واقع همه چیز زیر سر شئ ای به نام xmlhttprequest می باشد که تمام و یا بیشتر کارهای طراحی سایت را به بهترین نحو انجام می دهد. مراحل کار به این صورت است که در اولین مرحله باید از شئ xmlhttprequest یک نمونه سازی انجام دهیم. بعد از انجام چنین کاری، که البته باید جاوا را آشنایی داشته باشید، در ادامه ajax ای در مرورگر شما اجرا می شود. البته باید گفت که دو نوع مرورگر داریم :

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

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

 البته این تقسیم بندی بسیار کلی است و همین برای کار ما بس می باشد. بعد از این کار، وارد اولین مرحله کار می شویم یعنی نمونه سازی از شئ xmlhttprequest (همانطور که می دانید محل نوشتن کدهای جاوا درون تگ << script مابین تگHEAD>>  می باشد ). به این صورت که پیش رفتیم، در واقع ما به همین راحتی یک نمونه سازی از شئ خود انجام دادیم.

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

از xmlhttprequest بدانید!

پس ما تا اینجا یک شئ 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 ()

به همین راحتی برنامه کوچک ما تشخیص می دهد که آیا مرورگر مایکروسافتی است یا خیر، اگر هست یک نوع شئ و اگر نیست نوع دیگری را نمونه سازی می کند (البته در ۷ INTERNET EXPLORER این مشکل مرتفع شده و می توان از شئ دوم هم استفاده کرد.) شرح آن هم به این صورت می باشد که عبارت جلوی یک شرط منطقی را بررسی می کند. اگر شرط درست باشد مقدار TRUE می شود و دستورات مورد نظر اجرا می گردد. در اینجا اگر مرورگر از ACTIVEXOBJECT پشتیبانی کند پس به طور حتم مایکروسافتی است. این شرط همانند این است که بگوییم آن چیست که فرمان و چهار چرخ دارد؛ بدون شک همگی می گوییم یک خودرو است. پس اگر مرورگری از ACTIVEXOBJECT پشتیبانی کند، حتما مرورگر مایکروسافتی INTERNET EXPLORER است. حال اگر مرورگر از ACTIVEXOBJECT پشتیبانی نمی کند غیر مایکروسافتی است. برای مثال FIREFOX. اما برای دیگری شرطی نمی گذاریم. چرا که اگر حالت اولی یعنی مایکروسافتی بودن نقض شود، پس فقط یک حالت غیر مایکروسافتی می ماند و شیء خود را با 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>

دیدگاه ها بسته شده است