(XMLHttpRequest(XHR چیست ؟(آموزش Ajaz)
(XMLHttpRequest(XHR چیست ؟(آموزش Ajaz)
در این بخش به تفضیل درباره این شئ صحبت خواهیم کرد. در جواب این سوالی که چرا این بخش را قبل از بخش قبلی مطرح نکردم، این است که آشنایی با ساختار عملی، تئوریها قابل فهم تر هستند.
در این بخش از طراحی سایت به تفضیل درباره این شئ صحبت خواهیم کرد. در جواب این سوالی که چرا این بخش را قبل از بخش قبلی مطرح نکردم، این است که آشنایی با ساختار عملی، تئوریها قابل فهم تر هستند.
(XMLHttpRequest(XHR چیست ؟
این شئ یک AppLICATION PROGRAMMING INTERFACE)API ), میباشد که میتواند با جاوااسکریپت ، وی بی اسکریپت، جی اسکریپت و انواع مرورگرها و زبانهای دیگر به منظور انتقال و اداره داده های XML به مرورگرها و یا ازمرورگرها به طریق HTTP مورد استفاده قرار گیرد، در بهتر از آن بگویم: برای ایجاد یک کانال ارتباطی مستقلی بین مرورگر کاربر و سرور مورد استفاده قرار میگیرد.
اطلاعاتی که از یک شیی XMLHTTPREOUEST برگردانده میشود میتواند از یک بانک اطلاعاتی منشا شده باشد. علاوه بر این XMLHTTPREUOUEST میتواند اطلاعات را از انواع منابع مختلف با قالب های متفاوت حتی از یک متن ساده نیز استخراج کند.
یکی از قسمتهای مهم تکنیک ای جکس در برنامه نویسی تحت وب میباشد و امروزه این تکنیک در XMLHTTPROUES بسیاری از سایتها برای جواب د هی بهتر و پویایی کاملتر مورد استفاده قرار میگیرد. همانطور که قبلا گفته شد نمونه ای این سایتها را میتوانید در سایتهای GMA L, GOOGLESUGGEST , MEEBO, MSN و EARTH VIRTUAL مشاهده فرمایید.
تاریخچه
مفهوم XMLHTTPREours در اصل توسط مایکروسافت در نرم افزار 2000 OUTLook WEB Accesss گسترش یافت. مایکروسافت این استفاده راXMLHTTP نام گذاری نمود و آن را به عنوان یک شی ACTIVEX استفاده نمود، البته این کار با استانداردهای ثبت شده کمی تفاوت داشت. این شی در INTERNET EXPLORER5 به بعد با استفاده از جاوا اسکریپت و وی بی اسکریپت و دیگر زبان های مورد پشتیبانی این مرورگر قابلی دسترسی بود.
پروژه شرکت MozILLA که منجر به تولید مرورگر Moz LLA شد اولین تجربه استفاده از XMLHTTP در مرورگرهای غیر مایکروسافتی بود. این پیاده سازی بعدها توسط شرکت APPLE با تولید مرورگرSAFARI 1.2 ، KONQUEROR و OPERA 8.0 گسترش یافت
کنسرسیوم جهانی وب در 5 آوریل 2006 یک پیش نویس کاری مخصوص شی XMLHTTPREQUEST منتشر ساخت که هدف آن مستند سازی کمترین تداخلی بین تکنولوژی های کنونی است که به برنامه نویسان وب اجازه میدهد از این مزیتها و پیشرفتها بدون محدودیت استفاده کنند. این پیش نویس بر اساسی تکنولوژی های کنونی نوشته شده و همچنان بر روی آن کار میشود تا میزان سازگاری در همه زمینه ها بهبود یابد
در گذشته نه چندان دور برای رفع چنین تفاوتهایی بین مرورگرها و تکنولوژی های مختلف از اسکریپت نویسی و یا نصب INاستفاده می شد. نمونه هایی از این عمل را در زیر مشاهده می فرمایید:
Live Connect برای مرورگر NetScape
MIcRosoft ACTIVEX
Microsoft XML DATA ISLANDS
MACROMEDIA FLASH PLAYER
JAVA AppLETs E
در همین ارتباط، رویکرد ای جکسی به سمت فناوری وب سرویسی قابل توجه است. از آنجا که AJAX تا حد زیادی به معماری XMLHTTPREOUEST وابسته است، این قابلیت را دارد که فرامین ارسال و دریافت اطلاعات را نه فقط از طریق سایت اصلی نمایش دهنده یک صفحه وب، بلکه از طریق سایت های دیگری که احتمالا اطلاعات خود را بر بستر وب سرویسی و XML قرار داده اند نیز دریافت کند. بنابراین ای جکسی بالقوه یک فناوری سازگار باوب سرویس نیز هستند.
متدها
شئ XMLHTTPREOUEST متدهای فراوانی را ارائه میکند. اما در محیطهای استاندارد تعداد معدودی متد قابل استفاده مشترک هستند. در زیر متدهایی که در مرورگرهای SAFAR , MOZILLAlE, OPERA و FIREFOX قابلی استفاده هستند را مشاهده می کنید. البته قابل ذکر است که مرورگرهای دیگر هم از این متدادها پشتیبانی می کنند اما ممکن از در بعضی از آنها مشکلی پیش آید:
از متدهایی که در این جدول به نمایش آمد می توان گفت که متد OPEN و متد SEND متدهایی هستند که شما بیشترین استفاده از آنها را دارید.متدا OPEN مشخصات درخواست شما راست می کند. دو پارامتر اساسی و ضروری این متد عبارتند از روشی ارسال داده که می تواند GET و یا POST باشد و دیگری پارامتر URL است که برای ارتباط با سرور نیاز است. پارامتر سوم که مقادیرTRUE و FALSE را میگیرد . توضیحات تفاوت این دو گونه در بالا بیان شد. اما به نکنته ای باید اشاره کرد و آن این که استفاده از مقدار FALSE ایده خوبیست . یعنی آنکه برنامه منتظر دریافت پاسخ از سرور بماند و سپس برنامه را ادامه دهد. اما اگر در شبکه و ارتباط با سرور مشکلی پیش آید برنامه ما به کلی از کار میافتد چرا که منتظر پاسخ از سرور می ماند
خصوصیات
هنگامی که یک درخواست ارسال می شود ، شیئ میتواند دارای خصوصیاتی باشد که تعدادی از آن ها را در جدول زیر مشاهده می کنید.
جدول و صفحه آرایی (آموزش html)
خصوصیت readyState (آموزش Ajax)
متد open/متد send (آموزش Ajax)