X
تبلیغات
نماشا
رایتل
پشم سنگ عایق الاستومری
جمعه 7 فروردین‌ماه سال 1388
توسط: آلفا پک

کتاب الکترونیکی همه چیز درباره Ajax

سلام
این کتاب حاوی اطلاعات مفیدی در زمینه آژاکس (Ajax) می باشد که با مطالعه آن می توانید مهارتی در زمینه ای جکس (آژاکس) پیدا کنید.

مقدمه کتاب :
واژه Ajax سر نام عبارت Asynchronous JavaScript and XML و به معنی جاوا اسکریپت و XML آسنکرون یا نا متقارن است. Ajax فناوری جدیدی است که به کمک آن می‌توان اینترفیس یک برنامه تحت وب را طوری ساخت که وقتی کاربر روی دکمه یا لینکی کلیک می‌کند، کلیه عملیات ارسال اطلاعات و دریافت نتایج در پشت صفحه انجام می‌شود و فقط آن قسمت از اینترفیس که قرار آست اطلاعات جدیدی را به نمایش درآورد تغییر کند بدون اینکه تمام صفحه از نو بارگذاری شود.

نام کتاب: همه چیز درباره Ajax
ناشر کتاب: پایگاه تخصصی نرم‌افزار ایران
وب سایت ناشر: DeveloperCenter.Ir
فرمت: PDF
زبان کتاب: فارسی
تعداد صفحات: 60 صفحه
حجم کتاب: 853 کیلوبایت
دانلود
منبع : Gooya IT 

 

در ادامه مطلب هم یک مقاله کامل درباره آجاکس (ajax) گذاشتم


اشاره :

واژه 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 تصاویری هستند که گرت در مقاله خود استفاده کرده است. شکل 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 نیز دست‌کم یک پیاده‌سازی معروف وجود دارد. فهرست کامل همه این پیاده‌سازی‌ها را به همراه آدرس سایت و لینک دانلود آنها را می‌توانید در ضمیمه آنلاین همین مقاله که همزمان با انتشار این شماره در بخش دانلود سایت ماهنامه شبکه قرار می‌گیرد، پیدا کنید.