ایجکس که با نام Ajax نیز شناخته میشود به گروهی از فناوریها اشاره میکند که برای طراحی توسعه وبسایتها و برنامههای کاربردی تحت وب استفاده میشود. این سبک برنامهنویسی در واقع بستههای کوچکی از دادهها تشکیل میدهد که مدام بین سایت و سرور آن، رد و بدل میشود. این بستههای کوچک باعث میشود که در صورت تغییر بخشی از سایت، نیازی به بارگذاری مجدد(Refresh) کل سایت در مرورگر نباشد.
فرقی نمیکند که چقدر در دنیای برنامهنویسی تحت وب به اصول و استانداردهای اولیه پایبند باشید. سایت شما با هر نوع زبان برنامهنویسی که طراحی شود درنهایت با AJAX روبرو خواهید شد. از نظر فناوری، AJAX به چه چیزی اشاره دارد؟ آیا این یک زبان برنامهنویسی است؟ یک پلتفرم نرمافزاری است؟ یک برنامه تحت وب است؟ پاسخ تمام موارد یک کلمه است، هیچکدام!
در واقع ایجکس یا AJAX مخفف عبارت Asynchronous JavaScript و XML ، مجموعهای از تکنیکهای مورد استفاده برای ساخت وبسایتها و برنامههای کاربردی وب را شامل میشود. به گفته کارشناسان توسعه دهنده وب، بهترین راه برای درک AJAX این است که با شناسایی هدف خاص آن در فرآیند توسعه وب شروع کنید. عملکرد اصلی AJAX بهروزرسانی محتوای وب به صورت ناهمزمان است، به این معنی که مرورگر وب کاربر زمانی که فقط بخش کوچکی از محتوای صفحه نیاز به تغییر دارد، نیازی به بارگذاری مجدد(Refresh) کل صفحه وب ندارد.
یکی از رایجترین نمونههای بهروزرسانی ناهمزمان در سایتها، ویژگی "پیشنهاد Google" است. وقتی یک عبارت جستجو را در نوار جستجوی Google وارد میکنید و وبسایت Google به طور خودکار شروع به ارائه گزینههای تکمیل خودکار در حین تایپ میکند، در این حالت در واقع ایجکس در حال عمل است. در این حالت محتوای صفحه تغییر میکند و بدون نیاز به بازخوانی دستی صفحه (چیزی که استفاده از Google Suggest را غیرعملی میکند) مواردی را به شما نمایش میدهد.
ویژگیهایی مانند Google Suggest بخشی اساسی از مرور وب معاصر هستند که به اهمیت ایجکس در توسعه وب اشاره میکند. علاوه بر Google Suggest، ایجکس معمولاً برای بهروزرسانی ویژگیهایی مانند نوارهای وضعیت و اعلان، فرمهای آنلاین، بخشهای نظرات و نظرسنجیها و غیره استفاده میشود؛ اما J و X در ایجکس دقیقاً چیست و چگونه بهروزرسانی ناهمزمان را ممکن میسازد؟
همانطور که در بالا ذکر شد، "J" در ایجکس مخفف جاوا اسکریپت است. جاوا اسکریپت نوعی زبان اسکریپت نویسی است (زبان اسکریپت نویسی = زبانهای برنامهنویسی که برای خودکارسازی فرآیندهای وبسایت استفاده میشوند تا توسعهدهندگان وب مجبور نباشند هر نمونه از فرآیندی را که در یک صفحه ظاهر میشود به صورت جداگانه برنامهریزی کنند)
در مورد جاوا اسکریپت، به طور خاص برای ایجاد، افزودن و مدیریت محتوای وبسایت پویا استفاده میشود؛ بهعبارتدیگر، پس از استفاده از زبانهای نشانهگذاری مانند HTML و CSS برای ساخت و نمایش ویژگیهای وب استاتیک (سر صفحهها، فونتها، پاراگرافها و غیره)، جاوا اسکریپت برای کنترل ویژگیهایی که نیاز به بهروزرسانی در زمان واقعی دارند(در حالی که بازدیدکننده در حال مشاهده یک صفحه است) استفاده میشود. (نقشههای تعاملی، گرافیک متحرک، اسکرول ویدیو، انواع باکس و غیره را در نظر بگیرید). از آنجایی که جاوا اسکریپت بهروزرسانی محتوای صفحه را بدون نیاز به بارگیری دستی کل صفحات توسط بینندگان انجام میدهد، یک جزء حیاتی برای بهروزرسانی ناهمزمان در فرایند ایجکس است.
"X" در ایجکس به XML (زبان نشانهگذاری توسعهپذیر) اشاره دارد. همانطور که از نام آن پیداست، XML یک زبان نشانهگذاری است، به این معنی که در خانواده زبانهایی مانند HTML و CSS قرار دارد. زبانهای نشانهگذاری، زبانهای برنامهنویسی هستند که برای حاشیهنویسی بخشهایی از یک سند وب استفاده میشوند.
در حالی که HTML و CSS بر نحوه نمایش محتوای صفحه (پاراگرافها، سر صفحهها، فونتها، رنگها و غیره) تمرکز دارند، XML برای انتقال دادههای ذخیرهشده در صفحه به مرورگرهایی که آن را مشاهده میکنند، استفاده میشود.
سیستمهای رایانهای اغلب نمیتوانند دادههای فرمت بندی شده توسط یک سیستم دیگر را درک کنند یا با آنها تعامل داشته باشند. پس XML به توسعهدهندگان اجازه میدهد تا با ذخیره دادهها در قالب متن ساده بین تگهای XML، از این مانع عبور کنند. با انجام این کار، XML راهی برای ذخیره، جابجایی و به اشتراکگذاری دادهها ارائه میدهد که وابسته به یک سیستم نرمافزاری یا سختافزاری خاص نیست (چیزی که برای اینترنت بسیار مهم است)
در عمل جاوا اسکریپت و XML با یکدیگر ترکیب میشوند تا با استفاده از چیزی به نام شیء XMLHttpRequest، بهروزرسانی ناهمزمان را انجام دهند. هنگامی که کاربر از یک صفحه وب که در آن از ایجکس استفاده شده، بازدید میکند یک رویداد رخ میدهد. (مانند زمانی که کاربر صفحه را بارگیری میکند، روی یک دکمه کلیک میکند، یک فرم را پر میکند و مواردی از این قبیل)
- در این حالت جاوا اسکریپت یک شیء XMLHttpRequest ایجاد میکند که سپس دادهها را در یک XML منتقل میکند. فرمت بین مرورگر وب (برنامهای که برای مشاهده وبسایت استفاده میشود) و وب سرور (نرمافزار یا سختافزاری که دادههای یک وبسایت در آن ذخیره میشود). شیء XMLHttpRequest درخواستی را برای دادههای صفحه به روز شده به سرور وب ارسال میکند.
- سپس سرور درخواست را پردازش میکند، یک پاسخ در سمت سرور ایجاد میشود و به مرورگر ارسال میشود، سپس از جاوا اسکریپت برای پردازش پاسخ استفاده میکند و آن را روی صفحه نمایش میدهد. محتوای به روز شده میشود تا به کاربر نمایش داده شود.
- تکنیک ایجکس دادههای اضافی صفحه را نادیده میگیرد و فقط درخواستهای اطلاعات به روز شده و خود اطلاعات به روز شده را بررسی میکند.
تمام فرایند ایجکس به صورت خلاصه برای شما بیان شد. در واقع این فرایندها به عنوان قلب ایجکس کار میکنند. وبسایتها و برنامههایی را که از ایجکس استفاده میکنند سریعتر و پاسخگوتر بوده و کاربر در کوتاهترین زمان ممکن پاسخ خود را از سایت دریافت میکند. این کار باعث میشود که تجربه کاربری در سایت بهتر و پویاتر شود.
برای یادگیری ایجکس باید با خوبی با جاوا اسکریپت و فرایندهای آن آشنایی داشته باشید. در واقع اگر جاوا اسکریپت را به خوبی بدانید فرایند یادگیری ایجکس برای شما بسیار ساده خواهد بود. اگر قبلاً جاوا اسکریپت، HTML و XML را یاد گرفتهاید و یا اینکه در حال حاضر در کلاسهای آموزشی این زبانهای برنامهنویسی شرکت میکنید فرایند یادگیری AJAX برای شما بسیار ساده خواهد بود. ایجکس یک مهارت مستقل یادگیری در زبانهای برنامهنویسی نیست و یک نوع تکنیک جهانی برای سریعتر شدن فرایندهای تحت وب است که برای توسعه بخشهای front end مورد استفاده قرار میگیرد.