تکنولوژی AJAX چیست؟

پنجشنبه 3 مرداد 1392

تکنولوژی AJAX چیست؟ <br/> واژه Ajax را برای اولین بار آقای Jesse James Garrett در فوریه سال 2005 در مقاله Ajax: A New Approach to Web Applications استفاده کرد.


واژه Ajax را برای اولین بار آقای Jesse James Garrett در فوریه سال 2005 در مقاله Ajax: A New Approach to Web Applications استفاده کرد. اگرچه نام Ajax برای نخستین بار در سال 2005 ابداع شد، اما تاریخچه اکثر فناوری‌هایی که به آژاکس منتهی شدند به حدود یک دهه قبل و ابتکارات مایکروسافت در اسکریپت نویسی از راه دور بازمی‌گردد. با این حال تاریخچه فناوری‌هایی برای بارگذاری غیرهمروند محتویات یک صفحه وب، بدون نیاز به بارگذاری دوباره صفحه، به عناصر IFRAME (که در سال ۱۹۹۶ در نسخه ۳ IE ارائه شد) و عناصر LAYER (که در سال ۱۹۹۷ در نسخه ۴ Netscape ارائه شد، اما در نسخه‌های اخیر Mozilla متروکه شده است) باز می‌گردد. هردوی این عناصر، یک خصوصیت src دارند که می‌تواند یک آدرس URL خارجی را شامل شود و به این ترتیب اگر صفحه‌ای شامل یک کد JavaScript بارگذاری شود که صفحه والد را دستکاری می‌کند، نتیجه‌ای شبیه Ajax خواهیم داشت.

اسکریپت نویسی از راه دور مایکروسافت (یا MSRS که در سال ۱۹۹۸ مطرح شد) جایگزین مناسب‌تری برای تکنیک‌های گذشته به نظر می‌رسد. در این روش، داده‌ها به‌وسیله یک Java Applet دریافت می‌شود، و در سمت کلاینت برقراری ارتباط به‌وسیله JavaScript انجام می‌گیرد. این روش در نسخه‌های 4 و بعدتر IE و Netscape Navigator پشتیبانی می‌شود. سپس مایکروسافت در نسخه ۵ IE شی XMLHttpRequest را ارائه کرده و برای اولین بار در Outlook Web Access که در Microsoft Exchange Server 2000 ارائه شد، از این روش با استفاده از شی XMLHttpRequest بهره جست.

در نهایت با تغییر و تحولاتی که در این مسیر بوجود آمد و جایگزینی شی XMLHttpRequest به جای Java Applet، اکنون روشی برای اسکریپ نویسی از راه دور متداول شده که آن‌را با عنوان Ajax می‌شناسیم.

اما آنچه باعث شد پس از این مدت، ناگهان توجه‌ها به سمت Ajax جلب شود، تمرکز Google بر این معماری بود. Google Map، Gmail و Google Suggest پروژه‌هایی بودند که باعث شد توجه کاربران، چه کاربران عادی و چه کاربران حرفه‌ای، به نحوه کار آنها جلب شود.

Ajax ؛ معماری جدیدی برای وب

روش کار برنامه‌های کلاسیک وب چیزی شبیه این است: اکثر تعاملات کاربر با رابط کاربری باعث ارسال یک درخواست به سرور می‌شود. سرور پردازش‌های لازم را انجام داده و سپس یک صفحه HTML به کلاینت بازمی‌گرداند. این مدل بر اساس هدف اصلی وب، یعنی ایفای نقش یک رسانه برای ابرمتن است. اما آنچه وب را برای ابرمتن‌ها مناسب می‌کند، الزاماً آن را برای برنامه‌های نرم‌افزاری نیز مناسب نخواهد کرد[2]. مسئله اینجاست که برنامه‌های وب برای کاربرد (Application)بودن طراحی نشده‌اند و این باعث شده است که در بسیاری موارد کاربر را نادیده بگیرند.

فرض کنید کاربر می‌خواهد در یک فروشگاه الکترونیک، مشخصات جنس بعدی را ببیند، یا یک جنس را به سبد خرید خود اضافه کند. اتفاقی که می‌افتد این است که برای انجام هریک از این کارها، چون نیاز است با سرور ارتباط برقرار شود، باید یک درخواست به سرور ارسال شده، سرور پردازشهای لازم را انجام دهد و سپس یک صفحه به عنوان نتیجه بازگرداند. کاربر هم در این میان می‌تواند با انگشتانش بازی کند!

گرچه ما به صفحات وب، با همین روند انجام فعالیت هاعادت کرده ایم، اما واقعا روش کلاسیک برنامه‌های وب، گرچه از نظر تکنیکی مزایای بسیاری دارند، اما مشکلات عمده‌ای هم دارند. یکی از عمده‌ترین مشکلات صفحات وب را می‌توان همروند کار کردن آنها دانست. (یعنی همین که وقتی درخواستی از سرور داریم، صفحه وب مقابلمان مسدود شده و باید منتظر بمانیم تا سرور کارش تمام شود و صفحه‌ای به عنوان پاسخ برگرداند).

اکنون ببینیم Ajax چه پیشنهادی ارائه می‌دهد.

* قسمت‌های مهم معماری پیشنهادی Ajax به این قرارند [1]:

o رخدادهای کوچک سمت سرور: اجزای درون یک برنامه وب می‌توانند، درخواست‌های کوچکی برای سرور ارسال کنند، اطلاعات مورد نیازشان را از سرور دریافت کنند، و هر قسمت از صفحه را که لازم است بر اساس DOM به‌روز کنند، بدون اینکه تمام صفحه دوباره بارگذاری و ترسیم شود.

o غیر همروند بودن: درخواست‌هایی که به سرور ارسال می‌شود، باعث مسدود شدن صفحهٔ درون مرورگر کلاینت نمی‌شوند. کاربر می‌تواند به کار با قسمت‌های دیگر برنامه ادامه دهد و هنگامی که پاسخی از سرور دریافت شد، با به‌روز کردن رابط کاربر، به کاربر اطلاع داده می‌شود.

o عکس‌العمل برای هر رخدادی: تقریباً می‌توانیم برای تمام رخدادهایی که کاربر بوجود می‌آورد، با سرور ارتباط برقرار کنیم. مرورگرهای مدرن اکثر رخدادهایی را که سیستم عامل اجازه می‌دهد دریافت می‌کنند: کلیک کردن موس، حرکت موس روی شی، زدن یک کلید و غیره. هر رخدادی می‌تواند باعث ارسال یک درخواست به صورت غیر همروند برای سرور شود.

کاربردها

حتماً در بخش پست الکترونیک وب‌گاه یاهو دیده‌اید که با تایپ حروف اول نام دوستانتان نام چند نفر از آنها از پایگاه داده‌ها فراخوانی شده و به شما نمایش داده می‌شود. این کار بدون اینکه صفحه بارگذاری مجدد گردد انجام می‌شود. به زبان ساده‌تر، آژاکس فناوری‌ای ست که در آن با بارگذاری شدن یک صفحه، امکان فراخوانی برنامه‌های سمت رایانهٔ خادم (Server) بدون بارگذاری مجدد صفحه وجود دارد. برنامه‌های آژاکس راهی برای ساخت برنامه‌هایی تعاملی در وب فراهم کرده‌اند. برای این‌ کار کافیست یک عنصر فعال که قابل فراخوانی در جاوااسکریپت باشد بتواند تحت کنترل جاوااسکریپت با سرور تماس گرفته و اطلاعات درخواست کند. به‌عنوان مثال این عنصر فعال می‌تواند یک برنامه ASP یا JSP یا... را فراخوانی کرده و نتایج آن را از طریق جاوااسکریپت در صفحه جاری تأثیر دهد. عنصر فعال قبل از معرفی آژاکس می‌توانست یک ActiveX یا جاوا اپلت ساده باشد اما اکنون این عنصر آبجکت XMLHttpRequest است که در مجموعه ابزارهای XML مایکروسافت قرار دارد.

امروزه تقریباً همه مرورگرهای معروف از جمله IE از این تكنولوژی استفاده می‌كنند.

MohammadJavad

نویسنده 86 مقاله در برنامه نویسان

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

در صورتی که در رابطه با این مقاله سوالی دارید، در تاپیک های انجمن مطرح کنید