اشاره :
واژه Ajax سرنام عبارت Asynchronous JavaScript and XML و به معنی <جاوا اسكریپت و XML آسنكرون یا نامتقارن> است. ایجكس فناوری جدیدی است كه به كمك آن میتوان اینترفیس یك برنامه تحت وب را طوری ساخت كه وقتی كاربر روی دكمه یا لینكی كلیك میكند، كلیه عملیات ارسال اطلاعات و دریافت نتایج در پشت صحنه انجام شود و فقط آن قسمت از اینترفیس كه قرار است اطلاعات جدید را به نمایش درآورد تغییر كند بدون اینكه تمام صفحه از نو بارگذاری شود. در این مقاله میخواهیم این فناوری نوین و تحول آفرین را از جنبههای مختلف مورد بررسی قرار دهیم و با مبانی فنی آن آشنا شویم.
كمربندها را ببندید
آیا از دنیای كلاسیك وب خسته شدهاید؟ آیا مایلید با چهره جدید وب آشنا شوید؟ آیا میخواهید با جدیدترین فناوری دنیای برنامهنویسی وب آشنا شوید؟ برای پرواز آماده باشید! مقصد ما یكی از استانهای كشور جدید التاسیس Web 2.0 است. میخواهیم با هم به دنیای هیجان انگیز Ajax سفر كنیم.
در سرزمین ایجكس چهره سایتهای وب مانند نرمافزارهای رومیزی به نظر میرسند. اكنون وب خانه دوم اطلاعات دیجیتالی شما است. حالا كه با داشتن یك خط اینترنت پرسرعت میتوانید در تمام طول شبانه روز به اینترنت متصل باشید، وقت آن فرارسیده كه نرمافزارهای تحت وب نیز متحول شوند و كاركرد و قابلیتی مانند نرمافزارهای رومیزی داشته باشند. به این ترتیب فاصله و تفاوت میان نرمافزارهای دسكتاپ و نرمافزارهای آنلاین ناپدید میشود. دیگر لازم نیست وقتی روی دكمه submit كلیك میكنید منتظر بارگذاری مجدد صفحه وب بمانید. همهچیز فورا و به سرعت اتفاق میافتد.
تصور كنید به صورت آنلاین در حال خواندن نامههای الكترونیكی خود در یكی از سایتهای یاهو یا جیمیل هستید. فورا یادتان میافتد كه باید به كسی نامهای بفرستید. لازم نیست صفحهای كه در حال مطالعه آن هستید را ترك كنید و یا با استفاده از ترفندهایی مانند رایت كلیك و فرمان Open in New window یك پنجره جدید بازكنید و منتظر بارگذاری مجدد صفحه شوید. شما فقط میخواهید یك پنجره جدید باز كنید كه داخلش نامه خود را تایپ كنید.
چه نیازی به بارگذاری مجدد آنهمه اطلاعات جزئی و جنبی (مانند لوگوی سایت، نام آیدی شما و ...) است كه در اطراف اطلاعات اصلی به نمایش درآمدهاند؟ ایجكس همین كار را برای شما میكند. وقتی كه نامه خود را ارسال كردید نیز فقط همان پنجره بسته میشود و چند بایت برای سایت مقصد ارسال میشود و اینترفیس صندوق پستی نامههای شما بدون اینكه تكان بخورد و یا دوباره به نمایش درآید همچنان پیش چشم شما و منتظر فرمان بعدی است. در دنیای ایجكس دكمههای Back و Forward مرورگر معنی و كاربرد خود را تقریبا از دست میدهند.
همه دكمههای مورد نیاز داخل اینترفیس سایت موجود است. برخلاف جهان Web 1.0، در دنیای ایجكس گشت و گذار در وب لزوما خطی نیست. اگر میخواهید از یك فروشگاه الكترونیكی خرید كنید، میتوانید محصول مورد نظرتان را به روش drag&drop داخل سبد بیندازید و با فشردن دكمه نهایی، خرید خود را ثبت كنید. پیغام ثبت موفقیت آمیز سفارش برای شما نمایش داده میشود و كار تمام است. لازم نیست از صفحه الف به صفحه ب و سپس از آنجا به صفحه ج بروید.
ایجكس چیست؟
این واژه را اولین بار جسی جیمز گرت (Jesse James Garrett)، برنامهنویسی از شركت Adaptive Path در مقالهای با عنوان <ایجكس: رهیافت جدیدی در برنامههای تحت وب> بهكار برد. ایجكس سرنام عبارت Asynchronous JavaScript and XML و به معنی تركیب نامتقارن جاوا اسكپریپت و XML است.
چرا نامتقارن؟ چون تركیب این دو فناوری به شما كمك میكند قسمتی از یك صفحه وب را بروز كنید بدون اینكه لازم باشد <همزمان یا متقارن> با این عمل، كل آن صفحه از نو بارگذاری شود. این عملیات توسط شیء و فرمانی به نام XMLHttpRequest انجام میشود كه سالها پیش، هنگام معرفی نسخه 4 مرورگر اینترنت اكسپلورر وارد این نرمافزار شده و به دلیل قابلیتهای جالبی كه دارد، این روزها تمام مرورگرهای معروف و قدرتمند وب مانند فایرفاكس و اپرا از آن پشتیبانی میكنند. به كمك این شیء میتوانید برنامههایی به زبان جاوا اسكریپت بنویسید كه در پشت صحنه یك صفحه وب اطلاعاتی را به سرور بفرستند و دادههایی را دریافت كنند.
ایجكس اساسا رهاوردی از دنیای جاوا است و بار دیگر فناوری جاوا و زبان اسكریپتنویسی وابسته به آن را در كانون توجه برنامهنویسان قرار داده است. اما خبر خوب اینست كه چون همه پلتفرمهای برنامهنویسی وب از قبیلPHP ،ASP.NET و JSP از جاوا اسكریپت و XML پشتیبانی میكنند، فناوری ایجكس در همه این پلاتفرمها پیادهسازی شده و حتی جالب است بدانید كه تعداد ماژولهای ایجكس نوشته شده برای دات نت و PHP بیشتر از انواع جاوایی آن است.
مایكروسافت كه سالها پیش از شیء XMLHttpRequest در نرمافزار Outlook Web Access استفاده كرد و جزو اولین ترویجدهندگان این تكنیك به شمار میرود اخیرا نرمافزاری به نام Atlas معرفی كرده كه مخصوص برنامهنویسی مبتنی بر ایجكس است. اما چون ایجكس بر اساس جاوا كار میكند بدیهی است كه جنبش اپن سورس و خیل عظیم برنامهنویسان جاوا نیز بیكار نمانده و میكوشند تا دیر نشده Ajax را به قلب دنیای نرمافزارهای آزاد بیاورند و از انحصاری شدن آن جلوگیری كنند تا این فناوری به استاندارد جدید وب تبدیل شود. به نظر میرسد كه آنها موفق بودهاند زیرا حتی پیادهسازیهای دات نتی ایجكس نیز اغلب به صورت اپن سورس است.
مكانیزم Ajax
جسی جیمز گرت در مقاله معروف خود شیوه عمل ایجكس را چنین توضیح میدهد: هر عمل از سوی كاربر كه به طور معمول موجب تولید یك تقاضای HTTP شود به جای ارسال مستقیم به وب، موجب فراخوانی یك فرمان جاوا اسكریپتی و هدایت آن به موتور ایجكس میشود. هر نوع پاسخی به كاربر از سوی سرور (مانند كنترل صحت دادههای وارد شده در یك فرم ورود اطلاعات، ویرایش اطلاعات در حافظه و حتی برخی از انواع هدایت كاربر در سایت) نیازی به ارسال یك صفحه جدید به سمت كاربر ندارد و تنها همان قسمتی كه باید تغییر كند بروز میشود.
به طور سنتی وقتی كاربر فرمی را پرمیكند و به سایت ارسال میكند، وب سرور با بارگذاری مجدد یا تازهسازی صفحه (refresh) و نمایش یك پیغام و یا نتیجه پردازش اطلاعات، به او پاسخ میدهد و به همین دلیل هم وقت سرور برای ارسال كل محتوای آن صفحه گرفته میشود و هم كاربر باید برای دریافت كامل آن صفحه منتظر بماند؛ كه نتیجه آن كاهش بازده سرور، مصرف پهنای باند و تلف شدن وقت و هزینه است. اما بهكارگیری تكنیك ایجكس این مشكلات را به طرز قابلملاحظهای كاهش میدهد.
گوگل باز هم پیشتار
همانطور كه جسی جیمز گرت مینویسد، گوگل در میان سایتهای اینترنتی از نظر میزان بهكارگیری فناوری ایجكس پیشتاز است و این تكنیك را در نرمافزار سایتهای Orkut ،Gmail ،Google Groups، سیستم Google Suggest و سرویس Google Maps به كار برده است. همچنین به گفته گرت بسیاری از قابلیتهای دوست داشتنی Flickr، سایت به اشتراكگذاری عكس یاهو، و نیز موتور جستجوی A9 در سایت آمازون بر اساس ایجكس كار میكنند.
گرت مینویسد: اگر موتور ایجكس برای پاسخ دادن به كاربر نیازمند گرفتن اطلاعاتی از سمت سرور است، اگر قرار است دادهها برای پردازش به سرور ارسال شوند، اگر لازم است كدهای اضافی برای نمایش تغییرات اینترفیس بارگذاری شوند، اگر نیاز به بازیابی و بیرون كشیدن اطلاعات از بانك اطلاعاتی باشد، همه این كارها بهطور آسنكرون و با استفاده از XML، بدون اینكه وقفهای در تماس میان كاربر و اینترفیس نرمافزار بهوجود آید توسط موتور ایجكس انجام خواهد شد.
شكلهای 1 و 2 تصاویری هستند كه گرت در مقاله خود استفاده كرده است. شكل 1 مقایسهای است كه نشان میدهد كه برنامههای تحت وب سنتی چگونه كنشهای كاربر را مدیریت میكنند و ایجكس چگونه همین عملیات را كنترل میكند.
شكل 2 مقایسه دیگری است كه نشان میدهد اگر تعامل كاربر با یك سایت را در محور زمان ترسیم كنیم، چه تفاوتی میان فرآیند ارسال و دریافت دادهها در نرمافزارهای سنتی و نرمافزارهای مبتنی بر فناوری ایجكس وجود دارد.
اگر به نمودار شكل 2 دقت كنید متوجه میشوید كه هنگامی كه اینترفیس یك برنامه وب از ایجكس استفاده میكند، تماس میان كاربر و اینترفیس هرگز قطع نمیشود. او همواره نرمافزار را در دسترس و پیش روی خود میبیند و موتور ایجكس در پشت صحنه عملیات ارسال و دریافت دادهها را مدیریت میكند.
مزایا و معایب Ajax
طی سالهای اخیر صنعت نرمافزار در عرصه وب به سوی تولید سیستمهایی حركت كردهاست كه هرچه بیشتر مستقل از نوع سیستمعامل و مرورگری باشد كه كاربر استفاده میكند.
نگاهی به سیر تحولات مربوط به زبانهای برنامهنویسی وب مانند PHP و ASP از یكسو و كاهش اقبال برنامهنویسان به فناوریهایی همچون ActiveX و Java Applet در سمت كلاینت از سوی دیگر، موید این نكته است.
در واقع یكی از دلایل مهم توجه دنیای نرمافزار به فناوری ایجكس همین است. این دستاورد برخلاف فناوریهایی مانند Macromedia Flash نیازمند نصب هیچ نرمافزار الحاقی و اضافی روی مرورگر نیست و همین حالا بستر لازم برای پیادهسازی ایجكس روی میلیونها سایت و مرورگر وب وجود دارد. در این میان، اتكای ایجكس بر فناوری XMLاز اهمیت ویژهای برخوردار است.
زیرا XML ماهیتا یك فناوری باز است كه انعطافپذیری زیادی دارد و هماكنون در مقیاس گستردهای در نرمافزارهای تحت وب، از سیستمهای تجارتالكترونیك گرفته تا نرمافزارهای مدیریت محتوای سایتهای وب و فناوریهایی همچون وبسرویس، RSS و حتی پادكستینگ مورد استفاده قرار میگیرد.
ظهور ایجكس نشان میدهد كه فناوری XML هنوز قابلیتهای كشفنشدهای دارد كه همچنان بكر ماندهاند و میتوانند منشا تحولات بزرگ در سیستمهای اطلاعاتی و ارتباطی باشند.
طعم كد Ajax چگونه است؟ |
ورود به مباحث كدنویسی ایجكس مقوله پیچیده و مفصلی است كه در این مقاله نمیگنجد، ولی خالی از لطف نیست كه كمی با شكل و قیافه كدهای ایجكس آشنا شوید. كد زیر نمونهای از اعلان شی ءXMLHttpRequest را نشان میدهد: |
كد1 |
كد 2 نمونهای از اعلان شیء XMLHttpRequest را در مرورگرهای مایكروسافتی نشان میدهد: |
كد 2 |
كد 3 نمونهای از كدنویسی جاوا اسكریپت را نشان میدهد. در ایجكس به وفور از متدولوژی DOM در جاوا اسكریپت و DHTML استفاده میكنیم: |
كد 3 |
كد 4 نیز نمونهای از روش ارسال یك تقاضا به وسیله Ajax را نشان میدهد: |
كد 4 |
این تقاضا میتواند مثلا از قسمتی از یك صفحه وب به صورت كد 5 باشد: |
كد 5 |
نهایتا پاسخ دریافت شده از سمت سرور را نیز میتوان به وسیله كدی شبیه به كد 6 مورد استفاده قرار داد: |
كد 6 |
در همین ارتباط، رویكرد ایجكس به سمت فناوری وبسرویس قابل توجه است. از آنجا كه Ajax تا حد زیادی به معماری XMLHttpRequest وابسته است، این قابلیت را دارد كه فرامین ارسال و دریافت اطلاعات را نه فقط از طریق سایت اصلی نمایش دهنده یك صفحه وب، بلكه از طریق سایتهای دیگری كه احتمالا اطلاعات خود را بر بستر وب سرویس و XML قرار دادهاند نیز دریافت كند. بنابراین ایجكس بالقوه یك فناوری سازگار با وب سرویس نیز هستد.
مزیت مهم دیگر Ajax بهرهگیری آن از استاندارد CSS است.
استانداردی كه به تنهایی منشا تحولات دیگری در زمینه اینترفیس نرمافزارهای وب است و در آینده بسیار نزدیك به وجه غالب صفحهآرایی و اینترفیس سایتهای وب تبدیل خواهد شد. توجه ایجكس به CSS شان میدهد كه این فناوری همزمان با بهكارگیری جاوا اسكریپت و XML برای مدیریت دادهها، از استاندارد پیشرفتهای برای اینترفیس وب استفاده میكند و میتوان حقیقتا آن را یك فناوری مرتبط با اینترفیس ( و نه فقط تعامل میان كلاینت و سرور) تلقی كرد.
با این وجود، ایجكس معایبی نیز دارد و این معایب موضوع بحث بسیاری در محافل برنامهنویسی روی اینترنت است. یكی از مسائلی كه به عنوان ایراد مطرح شده، دشواری تغییر عادت كاربران در استفاده از كلیدهای Back وForward و Refresh در مرورگرهای وب است. یكی از مشكلات برنامهنویسان وب همواره این است كه یا باید كاربر را عادت دهند كه هرچه كمتر از این دكمهها استفاده كند و یا نرمافزار خود را طوری بنویسند كه اگر كاربر سهوا یا عمدا از این دكمهها استفاده كرد، نرمافزار دچار اشتباه و خطا در تفسیر عمل كاربر نشود.
به عنوان مثال هنوز بسیاری از سایتهای تجارت الكترونیكی كه به كار فروش محصولات مشغولند هنگام طی شدن مراحل نهایی خرید آنلاین به كاربر هشدار میدهند كه حین پردازش یك سفارش (یعنی درست در لحظهای كه فرمان نهایی از سوی كاربر ارسال شده است و هنوز صفحه نمایش پیغام ثبت موفقیتآمیز سفارش یا عدم ثبت آن برای وی نمایش داده نشده) از فشردن كلید Refresh جدا پرهیز كنند وگرنه ممكن است از كارت اعتبار آنها دوبار پول كسر شود. همچنین استفاده از دكمههای Back و Forward در عملیاتی كه به آسانی برگشتپذیر نیستند ممكن است باعث گیج شدن كاربر است.
مثلا اگر نامههای داخل صندوق پستی خود را پاك كنید، استفاده از دكمه Back هرگز این عمل را Undo نمیكند. همچنین اگر یك قلم كالا به سبد خرید آنلاین خود اضافه كنید، فشردن دكمهBack ممكن است در ظاهر چنین نشان دهد كه آن قلم كالا مجددا از سبد برداشته شده اما در سمت سرور همچنان در سبد خرید كاربر باشد. از آنجا كه فناوری ایجكس عمل Navigation یا راهبری در یك سایت را به روندی غیرخطی تبدیل میكند، تمام این مشكلات به شكل حادتری ممكن است بروز كند.
در واقع با حضور Ajax، كاركرد سیستم History مرورگر به مسالهای بغرنج تبدیل میشود. زیرا برنامهنویس یا باید با گنجاندن دكمهها و فرامین اضافی، مكانیزم Undo را بازسازی كند و یا موتور ایجكس را طوری بنویسد كه فشردن دكمه Back خود به خود موجب احظار فرمان Undo شود.
در هر دو صورت كار برنامهنویس آسان نخواهد بود. البته در این زمینه ترفندها و تكنیكهایی هم ابداع شده است. از جمله، استفاده از تگ IFRAME مخفی در اینترفیس صفحه كه موتور ایجكس بتواند در صورت فشرده شدن دكمهBack از سوی كاربر، نسخههای پیشین نمایش داده شده از اینترفیس را از انباره History مرورگر بیرون بكشد و دوباره در چرخه عملیات موتور ایجكس وارد كند. این ترفند هماكنون در سرویس Google Maps استفاده میشود.
مشكل دیگری كه در رابطه با ایجكس وجود دارد، بی معنی شدن مفهوم Bookmark است.
بازهم مكانیزم غیرخطی ایجكس مشكل ساز میشود. آیا شما میتوانید در نرمافزارهای معمولی دسكتاپ یك لحظه مشخص را Bookmark كنید و دوباره به آن برگردید؟ بعضی از نرمافزارها مانند فتوشاپ
(سیستم Action history) اینكار را انجام میدهند، ولی اغلب نرمافزارها چنین نیستند. در واقع به سختی میتوان از لحظات مختلف یك نرمافزار عكس گرفت و snapshot تهیه كرد.
اینكار به یك انباره پیچیده نیاز دارد كه هم حالتهای مختلف اینترفیس و هم وضعیتهای متفاوت دادهها را قبل و پس از تغییرات در خود نگه دارد. البته درمورد Ajax راهكارهایی در این زمینه پیشنهاد شده است. از جمله استفاده از anchor در HTML كه پس از علامت َ در یك URL ظاهر میشود. از آنجایی كه جاوا اسكریپت امكان به روزرسانی داینامیك آنكورها را دارد، بعضی برنامهنویسان پیشنهاد كردهاند كه از این ترفند برای نگهداری حالات مختلف یك برنامه مبتنی بر ایجكس استفاده شود. تكنیكی كه ممكن است در زمینه حل مشكل دكمههای Back و Forward نیز سودمند واقع شود.
یك مشكل عمده دیگر نیز در ارتباط با ایجكس وجود دارد. این فناوری به شدت متكی به XMLHttpRequest است و این شیء به دلایل امنیتی طی ماههای اخیر هرچه بیشتر و بیشتر در نسخههای جدید مرورگرها محدود شده است. زیرا اگر هر كلاینتی بتواند از هر نقطهای به هر سروری این فرمان را بفرستد، آنگاه تهدیدهای امنیتی علیه سایتها افزایش مییابد. محدودیتهای جدید اعمالشده در نسخههای اخیر مرورگرها موجب شده كه فرمانXMLHttpRequest بهغیر از سایتی كه صفحه وب از آنجا آمده است نتواند با سایت دیگری دیالوگ داشته باشد و این مسئله در تناقض با كاربرد ایجكس در زمینه وبسرویس است.
البته برای غلبه بر این مشكل راهحلهایی هم پیشنهاد شده است، از جمله اینكه شی ءXMLHttpRequest میتواند تقاضای دیالوگ با سایتهای دیگر را به یك وب سرویس روی سایتی كه صفحه وب از آنجا آمده است بفرستد و این وبسرویس (كه روی میزبان سایت قرار دارد و با تمام اینترنت در ارتباط است) به صورت یك واسطه عمل كند و تقاضاهای مورد نظر را برای سایت مقصد ارسال كند. این وب سرویسهای واسطه اصطلاحا Application Proxy نامیده میشوند.
البته ایجكس مشكلات كوچك و جنبی دیگری هم دارد كه چندان مایه نگرانی نیست ولی به هرحال قابل لمس هستند. به عنوان نمونه، نرمافزارهای مبتنی بر ایجكس از حجم زیادی جاوا اسكریپت استفاده میكنند كه همه اینها در هر session دستكم یكبار باید روی مرورگر بارگذاری شوند. بنابراین اولین باری كه چنین اینترفیسی بارگذاری میشود صفحه وب آنقدر سنگین میشود كه حتی با ارتباط باندپهن هم چند لحظه طول میكشد كه صفحه بارگذاری شود.
در چنین شرایطی نوشتن یك موتور ایجكس هوشمند كه با كمتر میزان كد بتواند بهترین كاركرد را داشته باشد، خود به یك چالش برنامهنویسی تبدیل میشود؛ ضمن اینكه كاربران وب در كشورهایی كه سرعت دسترسی به اینترنت در آنها به طور معمول زیاد نیست باید هنگام بارگذاری صفحات وب اینچنینی صبر پیشه كنند و برنامهنویسان نیز مراقب باشند تا در صورتی كه به دلیل كندی خط یا قطع شدنها لحظهای آن، كدهای جاوا اسكریپت به طور كامل روی مرورگر بارگذاری نشد، نرمافزار دچار خطا و اشتباه نشود و بتواند این مشكلات را از طریق بارگذاری مجدد و هوشمندانه كد جاوا اسكریپت روی كلاینت، مدیریت كند.
جنبش Open Ajax هم از راه رسید
در كنار همه تحولاتی كه به دنبال ظهور پدیده ایجكس در صنعت نرمافزار پدید آمده است، یك خبر مهم نیز قابل توجه است. شركت IBM كه خود از پیشگامان فناوری XML است، در ابتدای ماه فوریه 2006 اعلام كرد یك ائتلاف بزرگ صنعتی متشكل از شركتهای بورلند، BEA Systems ،Zend، ناول، یاهو، موزیلا، ردهت، اوراكل و بنیاد اكلیپس ایجاد كرده است كه در نظر دارد برای توسعه یك پیادهسازی فراگیر و اپن سورس از ایجكس تلاش كند. پیش بینی میشود كه این پیادهسازی به یكی از استانداردهای اصلی ایجكس در صنعت نرمافزار تبدیل شود. آیبیام در نظر دارد مجموعه Toolkit پیشنهادی خود را از طریق بنیادهای موزیلا و اكلیپس در دسترس جامعه اپن سورس قراردهد. در همین رابطه شركت Zimbra، یك سازنده نرمافزارهای مبتنی بر ایجكس درنظردارد مجموعه Toolkit خود را تحت لیسانس موزیلا و Apache در اختیار برنامهنویسان قرار دهد.
در عین حال وقتی حجم جاوا اسكریپت بارگذاری شده روی كلاینت افزایش مییابد سرعت پردازش كامپیوتری كه كاربر استفاده میكند نیز به یك مسئله تبدیل میشود. به بیان دیگر، ایجكس شدیدا منابع و resource های سیستم را بهكارمیگیرد، چنانكه به جرات میتوان گفت نرمافزارهای مبتنیبر Ajax برای كاربرانی كه از كامپیوترهای ضعیف و قدیمی استفاده میكنند قابل استفاده نیست.
اگر فرض را بر این بگذاریم كه این یك مشكل عمومی است و نه مختص وب، یعنی كامپیوترهای قدیمی از اجرای نسخه جدید نرمافزارهای مخصوص دسكتاپ نیز ناتوانند تا چه برسد به وب، آنگاه این مشكل چندان اهمیتی ندارد زیرا به مرور زمان، با جایگزین شدن سیستمهای جدید، مسئله حل خواهد شد. در چنین شرایطی ممكن است كندی بارگذاری و اجرای كدهای جاوا اسكریپت در نرمافزارهای مبتنی بر ایجكس عملا مزیت كاهش زمان انتظار برای بارگذاری مجدد صفحه را خنثی كند و نقض غرض شود. خوشبختانه مرتبا پردازنده های سریعتری وارد بازار میشوند و میتوان امیدوار بود كه این مشكل قبل از آنكه جدی شود، ناپدید شود.
پیاده سازی Ajax
یكی دیگر از مشكلاتی كه در ارتباط با ایجكس به نظر میرسد اینست كه كار زیادی از برنامهنویس میطلبد و در حال حاضر اجرای موفقیتآمیز یك اینترفیس حرفهای مبتنی بر ایجكس كاری بسیار دشوار و وقتگیر است. یعنیAjax به همان اندازه كه كار بازدیدكنندهها را آسان میكند، كار برنامهنویسان را مشكل میكند! با این حال ایجكس روی پلتفرمهای مختلف پیادهسازی شده و مجموعه ابزارهای مختلفی برای تسهیل كار برنامهنویسان عرضه شده است تا تجربه شیرینتری از Ajax داشته باشند.
برنامهنویسان ASP.NET در صورتی كه از نسخه دات نت 1.1 استفاده میكنند میتوان از ماژولAjax.NET استفاده كنند كه اولین پیادهسازی داتنتی ایجكس و رایگان است. مایكروسافت در ASP.NET 2.0 این فناوری را با نام Atlas وارد پلتفرم كرده است كه علاقهمندان میتوانند یكراست سراغ آن بروند.
برای پلتفرم جاوا نیز چندین پیادهسازی مختلف، اغلب اپن سورس، وجود دارد. از جمله AjaxAnywhere و AjaxTagsرا ببینید. همچنین چندین پیادهسازی مخصوصPHP میتوانید پیدا كنید. ماژولهای CPAINT و xajax از آن جملهاند. ماژول CPAINT برای ASP نیز قابل استفاده است. چند ماژول دیگر هم مانند GeneXus وجود دارند كه مالتی پلتفرم هستند. برای هریك از پلتفرمهای Perl ،ColdFusion و Python نیز دستكم یك پیادهسازی معروف وجود دارد. فهرست كامل همه این پیادهسازیها را به همراه آدرس سایت و لینك دانلود آنها را میتوانید در ضمیمه آنلاین همین مقاله كه همزمان با انتشار این شماره در بخش دانلود سایت ماهنامه شبكه قرار میگیرد، پیدا كنید.