مفهوم Ajax
مفهوم Ajax چیست چه کاربردی دارد ؟ واژه Ajax با تلفظ <ایجکس> یا <ایژاکس> سرنام عبارت Asynchronous JavaScript and XML و به معنی <ترکیب نامتقارن جاوا اسکریپت و XML> است. ماهیت صفحات وب و پروتکل HTTP به گونه ای است که به طور معمول وقتی درحال وبگردی هستیم، به ازای هر کنش و واکنش میان ما و سایتی که در حال کار با آن هستیم، کل یک صفحه وب از نو بارگذاری و تازه سازی (refresh) می شود.
ایجکس فناوری جدیدی است که تغییر محسوسی را در این سناریو به وجود می آورد؛ به این ترتیب که به جای بارگذاری مجدد کل صفحه، فقط قسمتی تغییر می کند که قرار است اطلاعات جدید را به نمایش درآورد و کلیه عملیات ارسال اطلاعات و دریافت نتایج در پشت صحنه انجام می شود. در نتیجه هیچگاه صفحه سفید و خالی وب در فواصل کنش و واکنش های هنگام کار با مرورگر دیده نمی شود و احساسی مشابه تجربه کار با یک نرمافزار دسکتاپ به کاربر دست می دهد.
جادوی ایجکس چیزی نیست جز یک فکر بکر و آن هم ترکیب کردن جاوا اسکریپت و XML در قالب یک موجود نرم افزاری جدید.
اصطلاح ایجکس را اولین بار کارشناسی از شرکت Adaptive Path به نام جسی جیمزگرت در مقاله ای با عنوان <ایجکس؛ رهیافت جدیدی در برنامه های تحت وب> مطرح کرد و خیلی سریع مورد استقبال گسترده برنامه نویسان وب در سراسر جهان قرار گرفت. اعتقاد عمومی این است که تاریخچه به کارگیری تکنیک مذکور به پیدایش نرم افزار Outlook WebAccess و استفاده از فرمان XMLHttpRequest که مایکروسافت ابداع کرده و در نرمافزار اینترنت اکسپلور به کار رفته است، برمی گردد. اما امروزه اغلب مرورگرهای مهم و شناخته شده (از جمله فایرفاکس) از آن پشتیبانی می کنند و دیگر یک فناوری محدود به اینترنت اکسپلورر نیست.
چرا Ajax این قدر اهمیت دارد؟
فناوری ایجکس جدید است و شگفت انگیز به نظر می رسد. ولی در حقیقت کل این شعبده بر اساس فناوری هایی بنا شده است که هم اکنون موجودند: جاوا اسکریپت و XML. هر دوی این فناوری ها تا حد زیادی باز هستند و منحصر به شرکت خاصی نیستند. به همین دلیل این روزها تمام محافل دنیای برنامه نویسی مملو از مقالات و تحلیل هایی درباره ایجکس است.
بنابراین ظرفیت بالایی برای تبدیل ایجکس به یک استاندارد جهانی وجود دارد.
این فناوری از یک جنبه دیگر نیز اهمیت دارد. به دلیل عدم نیاز به بارگذاری مجدد کل یک صفحه وب، مقدار داده هایی که لازم است برای تکمیل یک Interaction میان کاربر و سایت مبادله شود، به شدت کاهش می یابد و این به معنی افزایش محسوس سرعت نرم افزارهای تحت وب، سهولت به کارگیری اینترفیس های مبتنی بر ایجکس و کاربرپسندتر شدن آنها می شود. به همین دلیل این روزها اکثر پورتال های بزرگ (مانند یاهو) مشغول طراحی اینترفیس های مبتنی بر ایجکس هستند.
با این همه مزایای ایجکس به همین موارد ختم نمی شود. تصور کنید وقتی در طول شبانه روز میلیاردها بار فرآیند بارگذاری مجدد صفحات وب تعاملی در شبکه اینترنت تکرار می شود، استفاده از ایجکس چگونه موجب آزاد شدن پهنای باند اینترنت و در نتیجه میلیاردها دلار صرفه جویی اقتصادی در این زمینه می شود و این به نوبه خود انقلابی در عرصه وب و فضای سایبر به شمار می رود. این تحول در شرایطی اتفاق می افتد که همزمان فناوری های اینترنت پرسرعت همچون ADSL به شدت در حال رشد هستند.
حال تصور کنید اگر فناوری ایجکس در مقیاس گسترده ای مورد استفاده نرم افزارهای تحت وب قرار گیرد، آنگاه افزایش سرعت کار با اینترنت چند برابر خواهد شد. چنین تحولی می تواند اینترنت را به کامپیوتر دوم کاربران تبدیل کند. به گونه ای که برای آنها اجرای یک نرم افزار از روی وب تفاوت محسوسی با اجرای آن از روی کامپیوتر دسکتاپ نداشته باشد. در این صورت ممکن است واقعا بخش مهمی از توان پردازشی نرم افزارها، چه از نوع دسکتاپ و چه از نوع تحت وب به سیستم های موسوم به Web Service واگذار شود. از این رو کسانی که مبتکر و مشوق ایده وب سرویس بوده اند، این روزها انگیزه تازه ای برای سرعت بخشیدن به این فناوری پیدا کرده اند و تلاش می کنند دو فناوری ایجکس و وب سرویس را به یکدیگر پیوند دهند و راه کارهای تازه ای بیافرینند.
کدام سایت ها از Ajax استفاده کرده اند؟
دنیای برنامه نویسی وب هنوز درگیر هیجانات مربوط به آشنایی با این پدیده است و در حال بررسی مشکلات تکنیکی و هضم و جذب آن در بافت برنامه های تحت وب می باشد. به همین دلیل میزان استفاده عملی از آن چندان گسترده نیست. اما چون کارایی ایجکس دیگر برای همه ثابت شده است، حرکت های بزرگی در سراسر اینترنت به سمت استفاده از این فناوری در جریان است. از جمله اینترفیس نسخه دوم Yahoo Mail که به نسخه بتا معروف است و فعلا در دسترس کاربران سرویس غیر رایگان یاهو قرار دارد، از همین فناوری استفاده می کند که به زودی اینترفیس جدید در دسترس عموم قرار می گیرد. سرویس Gmail و Google Map نیز از این فناوری استفاده می کنند.
مزایا و معایب Ajax
مزایای استفاده از Ajax
- افزایش کارایی کلی یک وب سایت
- به حداقل رساندن اطلاعات ارسالی و دریافتی از سرور
- عدم نیاز به بهروزرسانی و دانلود کل یک صفحه که در این حالت تنها بخش تغییر یافتهای از صفحه بهروزرسانی میشود.
- پشتیبانی توسط مرورگرهای مطرح، به دلیل اینکه مرورگرهای امروزی از انواع مختلفی از قابلیتهای جدید پشتیبانی می کنند و آژاکس نیز بر مبنای این فناوریها کار میکند در نتیجه به راحتی از سوی مرورگرها تشخیص داده میشود.
- ایجکس بهبود کارایی فرمهای تصدیق هویت در برنامههای ASP.Net را به همراه دارد.
- از آنجایی که در برنامهنویسی وب مدل استاندارد پردازش کردن کنترلها و صفحات در برنامههای ASP.Net از انعطافپذیری فوقالعاده و توسعهیافتهای برخوردار است، آژاکس مفهوم جدیدی بهنام کنترلهای توسعه یافته را ارائه کرد. این کنترلهای توسعه یافته بهعنوان یک ضمیمه در زمان اجرا به کنترلهای سمت سرور الصاق شده و ظاهر و رفتار جدیدی را به کنترلها در سمت کلاینت میدهند. در بیشتر مواقع کنترلهای توسعه یافته توانایی فراخوانی سرویسهای از پیش تعریف شدهای را برای دریافت دادهها دارند.
- AJAX قادر است فراخوانیهای غیرهمزمان روی وب سرور را ایجاد کند. در نتیجه مرورگر کلاینت درگیر حالت انتظار برای دریافت همه دادهها نخواهد بود.
- نیازی به انتظار برای بارگذاری مجدد یک صفحه بهطور کامل نخواهد بود.
معایب استفاده از Ajax
- شبیه به هر فناوری دیگری AJAX در کنار مزایایی که همراه با خود دارد از یکسری معایب نیز برخوردار است. از جمله این معایب به موارد زیر میتوان اشاره کرد.
- دکمههای بهروزرسانی و برگشت ممکن است مشکلاتی در برنامههای AJAX به وجود آورند.
- به دلیل اینکه در AJAX همه توابع به صورت پویا بارگذاری شده و صفحه دومرتبه بارگذاری نمیشود، کلیک کردن روی دکمه برگشت یا بهرروزرسانی ممکن است شما را بهطور کامل به صفحه دیگری هدایت کند. اما در صورتیکه برنامهنویس از مهارتهای بالایی برخوردار باشد این مشکل قابل برطرف شدن است.
- AJAX بر مبنای جاوا اسکرپیت ساخته شده است. در حالیکه جاوا اسکریپت یک زبان اسکریپتنویسی ایمن بوده و توسط بیشتر وب سایتها استفاده میشود، اما برخی کاربران تصمیم جاوااسکرپیت را روی مرورگر خود غیرفعال میکنند. همین موضوع باعث بی فایده بودن برنامههای آژاکس را به همراه دارد.
- موتورهای جستجو ممکن است توانایی شاخصگذاری برنامههای AJAX را به شکل درستی نداشته باشند.
- آخرین ایراد در ارتباط با خود شی XMLHttpRequest است. به دلایل امنیتی، شما تنها به اطلاعات میزبانی که در صفحه مقداردهی اولیه مشخص شده است دسترسی دارید. به این ترتیب اگر نیازمند دریافت اطلاعات از سرور دیگری باشید اینکار در AJAX امکانپذیر نخواهد بود.