ای‌جکس یک تکنولوژی نیست؛ بلکه مجموعه‌ایست از تکنولوژی‌هایی که هر یک در جای خود تکنولوژی کامل و موفقی هستند، و اکنون به شکل جدیدی در کنار هم قرار گرفته و ای‌جکس را تشکیل داده‌اند. تکنولوژی‌هایی که در ای‌جکس از آن‌ها استفاده می‌شود عبارت‌اند از:

  • نمایش استاندارد با استفاده از XHTML و CSS.
  • نمایش پویایی و تعاملات با استفاده از Document Object Model (DOM).
  • تبادل و دستکاری داده با استفاده از XML و XSLT.
  • بازیابی داده‌ها بصورت غیر همروند با استفاده از XMLHttpRequest. و جاوااسکریپت برای سرهم‌بندی همه چیز با هم.

در واقع ای‌جکس ترکیبی از تکنولوژی‌های فوق است و هیچ چیز جدیدی ارائه نمی‌دهد. همه شگفتی ای‌جکس در معماری هست که برای ساخت یک برنامه وب، با استفاده از این تکنولوژی‌ها ارائه می‌دهد.

ای جکس یک شیوه جهت طراحی و توسعه وب‌گاه‌ها بوده که جهت بالا بردن قدرت تعامل Interface سایت با کاربر و بالا بردن کیفیت عملکرد و قابلیت‌های سایت مورد استفاده قرار می‌گیرد. Ajax به صورت Client Side و با به کار گیری JavaScript و CSS مورد استفاده قرار می‌گیرد. امروزه در مبحث طراحی صفحات HTML تکنولوژی Ajax عامل حیات صفحه و ارضاء کاربر در مواجهه با واسط (Interface) تلقی می‌شود.

ای‌جکس؛ معماری جدیدی برای وب

قسمت‌های مهم معماری پیشنهادی ای‌جکس به این قرارند:

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

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

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

بجای اینکه مرورگر در آغاز ارتباط تنها یک صفحه HTML را بارگذاری کند، یک موتور ای‌جکس را نیز همراه با صفحه بارگذاری می‌کند، که به زبان جاوااسکریپت نوشته شده و معمولاً مابین فریم‌هایی در صفحه پنهان شده‌است. این موتور عامل به‌روز کردن رابط کاربری‌ای که کاربر می‌بیند، و همچنین برقراری ارتباط با سرور در پشت پرده است. موتور Ajax امکان تعامل کاربر با برنامه را، مستقل از ارتباطات و نقل و انتقالات بین برنامه و سرور می‌دهد؛ بنابراین، کاربر دیگر شاهد یک صفحه خالی و ساعت شنی و انتظار برای انجام عملیات سمت سرور نخواهد بود.

آن دسته از فعالیت‌های کاربر که باعث یک درخواست HTTP می‌شدند، اکنون با استفاده از جاوااسکریپت موتور ای‌جکس را فراخوانی می‌کنند. در مورد پاسخ به آن دسته از فعالیت‌های کاربر که نیاز به ارسال درخواست به سرور ندارند (مانند اعتبار سنجی‌های ساده داده‌ها، ویرایش داده‌های درون حافظه سیستم کلاینت، و حتی هدایت کاربر به بخش‌های مختلف برنامه در برخی موارد) موتور ای‌جکس خود وارد عمل می‌شود. اگر موتور ای‌جکس برای پاسخ گویی نیاز به چیزی از سمت سرور داشته باشد، (مثلاً اطلاعاتی را از بانک اطلاعاتی بخواهد، کدهای جدیدی برای رابط کاربر لازم داشته باشد و…) بصورت غیر همروند و معمولاً در قالب XML یک درخواست به سرور ارسال می‌کند. ارسال این درخواست هیچ وقفه‌ای در کار کاربر با برنامه ایجاد نخواهد کرد . همان‌طور که پیش از این گفته شد، ای‌جکس مجموعه‌ای از چند تکنولوژی است. موتور Ajax از این تکنولوژی‌ها برای انجام وظایف مختلفی که بعهده دارد استفاده می‌کند.

مشکلات ای‌جکس

اگرچه این روش مزایای بسیاری دارد و شکاف بین برنامه‌های رومیزی و برنامه‌های وب را بسیار کم‌تر کرده‌است، اما مشکلاتی نیز دارد که هنگام کار به این روش، باید به آن‌ها توجه کرد.

یکی از مشکلاتی که در مورد ای‌جکس عنوان می‌شود، این مورد است که این روش کاربرد کلید Back مرورگرها را مختل کرده و این بر خلاف عادت کابران در محیط وب است. البته برای حل این مورد راه‌حل‌هایی پیشنهاد شده که این مقاله جای بحث در مورد آن‌ها نیست. مشکل دیگر ای‌جکس مورد تأخیر شبکه و نگرانی در مورد زمان پاسخگویی سیستم است. مورد تأخیر شبکه در یک برنامه بر اساس Ajax باید با دقت در نظر گرفته شود. تأخیر در بارگذاری اولیه رابط کاربر برنامه، چیزیست که معمولاً برای کاربر قابل درک نیست و باید با دادن پیغامی مناسب، کاربر را از اینکه سیستم درحال بارگذاری، یا انجام فعالیتی و برقراری ارتباطی با سرور است، آگاه کرد.

مورد دیگری که در مورد سیستم‌های بر اساس Ajax وجود دارد، استفاده ای‌جکس از جاوااسکریپت است و این مورد که کاربر می‌تواند اجازه اجرای جاوااسکریپت در مرورگر خود را ندهد. پس باید پیش از شروع بارگذاری موتور ای‌جکس از اجازه داشتن اجرای جاوااسکریپت روی مرورگر کلاینت اطمینان پیدا کرد. البته در مورد IE نسخه ۶، به این مورد نیز باید توجه کرد که شی XMLHttpRequest به صورت ActiveX پیاده‌سازی شده و در نتیجه کاربر باید امکان استفاده از ActiveXها را نیز به مرورگر بدهد.

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