شنبه, ۸ اردیبهشت, ۱۴۰۳ / 27 April, 2024
مجله ویستا

Ajax چیست؟


Ajax چیست؟
Ajax یک مفهوم جدید یا تنها یک تکنولوژی نیست. Ajax نامی است که از سال ۲۰۰۵ به تکنولوژی هایی اطلاق شده است که سالهای زیادی است در وب در حال استفاده هستند. اما تاریخچه Ajax از زمانی شروع می شود که مایکروسافت فعالیت خود را در زمینه توسعه Remote Scripting در سال ۱۹۹۸ آغاز کرد. اگرچه قبل از آن تکنیک هایی برای لود کردن محتوا بر روی صفحات وب موجود بدون نیاز به لود کردن کامل توسعه داد شده بود که نتیجه آن المان IFRAME (ارائه شده در Internet Explorer ۳ در سال ۱۹۹۶) و المان LAYER (ارائه شده در Netscape ۴ در سال ۱۹۹۷) بود.
بعد از آن نیز فعالیت هایی در این زمینه انجام شد. در سال ۲۰۰۲، مایکروسافت Remote Scripting را تغییر داد تا Java Applet را با XMLHttpRequest جایگزین کند. بعد از آنکه XMLHttpRequest در بیشتر browserها استفاده شده است، گهگاه تکنیک های دیگری نیز استفاده شده است.
● تعریف Ajax
همانگونه که گفته شد، Ajax یک تکنولوژی تنها نیست. در واقع مجموعی از چند تکنولوژی موفق است که در کنار هم یک روش جدید قدرتمند را بوجود آورده اند. Ajax ترکیبی است از:
▪ نمایش مبتنی بر استاندارد با استفاده از XHTML و CSS؛
▪ نمایش و تعامل دینامیک با استفاده از Document Object Model یا DOM؛
▪ تبادل و دستکاری داده ها با استفاده از XML و XSLT؛
▪ بازیابی غیر همزمان داده ها با استفاده از XMLHttpRequest؛
▪ جاوا اسکریپت که همه اینها را به هم مرتبط کرده است.
برنامه های وب کلاسیک شبیه چنین مدلی کار می کنند: بیشتر فعالیت های کاربر در UI، یک درخواست HTTP بازگشتی به سرور را شروع می کنند. سرور پردازش هایی را انجام می دهد، نظیر بازیابی داده ها، پردازش اعداد، برقراری ارتباط با سیستم های قدیمی و غیره، و سپس یک صفحه HTML را برای کلاینت می فرستد. این مدلی بر پایه استفاده اصلی وب به عنوان یک رسانه hypertext است، اما آنچه که وب را چیز خوبی برای hypertext می سازد، لزوما برای برنامه های نرم افزاری خوب نیست. این روش از نظر فنی بسیار منطقی است، اما کمکی به کاربر نمی کند. هنگامی که سرور مشغول کارهای خودش است، کاربر چه می کند؟ درست است، انتظار می کشد. و در هر مرحله از اجرا، کاربر بیشتر انتظار می کشد.
واضح است که اگر از ابتدا وب را برای برنامه ها (Applications) طراحی کرده بودیم، کاربران را منتظر نمی گذاشتیم. وقتیکه یک UI لود شده است، چرا باید هر زمان که برنامه نیاز به چیزی از سرور دارد، ارتباط کاربر قطع شود؟ در حقیقت چرا باید کاربر ببیند که برنامه سمت سرور رفته است؟
● چه چیز Ajax متمایز است؟
یک برنامه Ajax، طبیعت شروع-قطع-شروع-قطع ارتباطات موجود در وب را با ارائه یک واسطه - یک انجین Ajax - مابین کاربر و سرور حذف می کند. به نظر می رسد که افزودن یک لایه به برنامه پاسخدهی را کم کند، اما برعکس است.
به جای لود شدن یک صفحه در ابتدای session، مرورگر (browser) یک انجین Ajax را که به زبان جاوا اسکریپت نوشته شده است و معمولا در یک فریم پنهان قرار داده شده است، لود می کند. این انجین هم مسئول رندر کردن UI ی است که کاربر می بیند و هم مسئول برقراری ارتباط با سرور از طرف کاربر است. Ajax اجازه می دهد تا تعامل کاربر با برنامه مستقل از ارتباط با سرور، به صورت غیر همزمان (Asynchronously) اتفاق بیافتد.
بنابر این کاربر هیچ وقت به یک پنجره خالی browser با آیکون ساعت شنی خیره نمی شود تا منتظر باشد که سرور کاری انجام دهد.
هر عمل کاربر که معمولا یک درخواست HTTP تولید می کند، به شکل یک فراخوانی جاوا اسکریپت به انجین Ajax در نظر گرفته می شود. هر پاسخ به عمل کاربر که نیاز به انجام رفت و برگشت کامل به سرور ندارد - نظیر معتبرسازی داده، ویرایش داده در حافظه، و حتی navigation - در خود انجین handle می شود. اگر انجین به منظور پاسخگویی نیاز به داده هایی از سرور داشته باشد، مثلا اگر داده ارسالی برای پردازش، لود کردن کدهای UI جدید، یا بازیابی داده جدید باشد، انجین آن درخواست ها را به صورت غیر همزمان، معمولا با استفاده از XML، و بدون ایجاد وقفه در تعامل کاربر با برنامه، می سازد.
● چه کسانی از Ajax استفاده می کنند؟
Google سرمایه گذاری هنگفتی را در توسعه روش Ajax انجام داده است. همه محصولات اصلی گوگل در سالهای اخیر، نظیر Orkut و Gmail، ویرایش های بتای Google Groups و Google Suggest و Google Maps، برنامه های Ajax هستند. دیگران نیز دنباله رو هستند، بسیاری از قابلیت های مورد علاقه افراد در Flickr بر پایه Ajax است، و موتور جستجوی A۹.com آمازون، تکنیک های مشابهی را به کار برده است.
این پروژه ها نشان می دهد که Ajax فقط یک مفهوم تکنیکی نیست، بلکه برای برنامه های واقعی نیز عملی است. Ajax تکنولوژی جداگانه ای نیست که فقط در آزمایشگاه کار می کند. برنامه های Ajax می توانند در هر اندازه ای باشند، از یک برنامه خیلی ساده و تک منظوره Google Suggest، تا برنامه بسیار پیچیده و حرفه ای Google Maps.
حسین فرخ حیاتی
منابع:
Ajax: A New Approach to Web Applications
What is Ajax?
Ajax (programming)


همچنین مشاهده کنید