در واقع Ajax سرنام عبارت Asynchronous Java And XML و روشی جدید از استاندارهای موجود که با استفاده از آن می توان برنامه های وب را سریعتر ، بهتر و کاربر پسندتر ساخت . Ajax یک زبان مستقل نیست اما بر مبنای Java و HTTP پایه ریزی شده است .
Ajax به عبارتی یک تکنیک جدید برای هر چه بهتر و سریعتر کردن برنامه های محاوره ای - تعاملی - تحت وب هست و برای دریافت یا ارسال داده ها بین مرورگر و وب سرور از جاواسکریپت استفاده می کند . به این صورت که به جای لود تمام صفحه وب تنها قسمتی از صفحه را که در آن توسط کاربر تغییر ایجاد شده است ، لود می کند . به این ترتیب سرعت لود و بارگذاری صفحات بالا می رود .
تکنولوژی Ajax
Ajax تکنولوژی هست که برروی مرورگر شما اجرا می شود و از یک ارتباط نامتقارن – غیر همزمان - برای انتقال داده ها (درخواست های HTTP ) بین مرورگر و وب سرور استفاده می کند . به عبارتی دیگر این اجازه را به صفحه وب می دهد که فقط داده ها و اطلاعات کوچک مورد نیاز را به جای تمام صفحه وب از وب سرور در خواست کند . از این روش طراحی وب که user friendly تر هست ، برای مواردی که تعامل زیاد با کاربر ( صفحات محاوره ای ) مدنظر هست مثل میل باکس ها ( یه لحاظ سرعت در عملیات ) می توان استفاده کرد .
Ajax یک استاندارد باز
Ajax بر پایه استاندارده های باز زیر پیاده سازی شده است :
Java
XML
HTML
CSS
این استاندارد های در Ajax بسیار خوب تعریف شده اند و همچنین در اکثر مرورگر های به خوبی پشتیبانی می شوند . در واقع برنامه های کاربردی Ajax یک مرورگر و یک پلتفرم کاملآ مستقل هستند . و سالهاست که کاربران از این استاندارد ها ( شاید به صورت جداگانه ) استفاده می کردند و آن را توسعه می دهند . همان طور که قبلآ ذکر شد Ajax یک زبان مستقل نیست و هر کسی می تواند سایت خود را از HTML ،CSS خام به این تکنولوژی ارتقاء دهد .
چگونه Ajax از این استانداردها استفاده می کند
در صفحات وب سنتی وقتی شما یک فرم را پر کرده و دکمه ارسال را می زنید این صفحه با استفاده از HTML اطلاعات شما را به وب سرور ارسال می کند . بعد وب سرور اطلاعات شما را پردازش کرده و نتیجه آن را در یک صفحه جدید برای شما ارسال می کند . در نتیجه به خاطر پاسخی که وب سرور هر بار در یک صفحه جدید ارسال می کند ، سرعت پاسخ به این درخواستها پایین و کاربر پسند نیست . به کمک Ajax می توان به این درخواستها ( ارسال و دریافت اطلاعات از سریق HTTP ) با استفاده از Java در پشت صحنه صفحه وب پاسخ داد و تنها همان قسمت از اطلاعاتی که باید در وب سرور پردازش شود را به وب سرور ارسال و پاسخش را دریافت کرد و نهایتآ نتیجه را نمایش داد . به این ترتیب قسمتهایی از صفحه که ثابت هست نیازی به دوباره لود شدن ندارند .
نقش XML هم در این بین تعریف قالبی برای دریافت اطلاعات از سرور هست ، اگر چه از هر قالب متنی ( Text Plain ) می توان برای این کار استفاده کرد .
هم اکنون گوگل و یاهو برای صندوق پستی خود از این تکنولوژی استفاده می کنند .
تعریف آژاکس
همانطور که گفته شد آژاکس یک فناوری است. آژاکس متشکل از چندین فناوری دیگراست که هر کدام در مسیری جدید و قوی می آیند. آژاکس از بهم پیوستن پنچ مورد زیر بوجود آمده است:
1 . ارائه استاندارد پایه با استفاده از XHTML و CSS .
2 . نمایش پویا و تعامل با کاربر با استفاده از DOM(Document Model)
3 . دستکاری و تبادل اطلاعات با استفاده از XML و XSLT.
4 . بازیابی غیر همزمان داده ها با استفاده از XMLHttpRequest.
5 . تقید همه چیز با هم (Java)
مدل قدیمی یا در واقع کلاسیک وب همانند این کار می کرد که بیشترین فعالیت های کاربربا واســط (Interface) ، یــک درخــواست HTTP بود که به سـرور برگشت داده می شد. سرور بعضی پردازش ها از قبیل بازیابی اطلاعات را انجام می داد و آنگاه یک صفحه HTML به سمت مشتری باز می گرداند. این یک مدل اقتباس گرفته شده از اصل وب ــ که از رسانه ابر متن (HyperText) استفاده می کند ــ است.
اما بطوریکه مشتاقان اساس آزمون کاربر می دانند ، چقدر ما وب را عالی میسازیم بدون اینکه نیازی به این عالی سازی برای نرم افزارهای کاربردی داشته باشیم؟
این رویکرد جدید مفاهیم فنی زیادی را میسازد اما یک آزمون کاربر عالی نمی سازد. تا زمانی که سرور در حال انجام کارهای خودش است کاربر باید چکاری انجام دهد؟ درست است ، او باید صبر کند و در هر گام یک عمل ، باید بیشتر زمان را صبر نماید.
واضح است اگر ما یک طراح وب بودیم نبایستی در این مدت کاربر را منتظر نگه داریم. یکبار واسط (Interface) در سمت مشتری بارگذاری می شود ، چرا باید فعل و انفعال کاربر دچار مکث شود در هر باری که برنامه کابردی نیاز به چیزی از سرور دارد ؟ در حقیقت چرا کاربر باید همیشه برنامه را در حال رفتن به سرور مشاهده کند؟
به چه سبب آژاکس متمایز است ؟
یک برنامه کاربردی آژاکس طبیعت Start-Stop-Start-Stop فعل و انفعال در وب را بااستفاده از مطرح کردن واسطی میان کاربر و سرور به نام موتور آژاکس بر طرف نموده است. بنظر میرسد که مانند اضافه کردن یک لایه به برنامه کاربردی است تا برنامه را کمتر به سمت سرور فرستاده و از آن پاسخ دریافت نمایید. اما برعکس این حالت درست می باشد.
درابتدای یک جلسه با یک سرور بجای بارشدن صفحه ابتدا مـرورگر موتور آژاکس را بار می نماید که معمولا با جاوا اسکریپت نوشته شده است و در یک فریم مخفی چیده شده است. این موتور مسئول بین رندر کردن واسطی که کاربر می بیند و ارتباط بر قرار کردن با سرور از طرف کاربر می باشد. این موتور به کاربر اجازه می دهد که مستقل از ارتباط برقرار کردن با سرور ، با برنامه تعامل داشته باشد. همچنین کاربر هرگز در یک صفحه جدید سفید مرورگر با یک آیکون ساعت شنی شروع نمی کند و در حال صبر نخواهد بود تا سرور کارهایش را انجام دهد.
در شکل زیر دو مدل را از لحاظ زمان مورد بررسی قرار داده ایم و در واقع نحوه بهبود سیستم کلاسیک وب با استفاده از مدل آژاکس را نمایش داده ایم.