نويسنده: علی لفظی قاضی

چاپ شده در ماهنامه وب / شماره ۱۱۳/ آبان ۱۳۸۸ 

 

استفاده از مطالب بدون ذکر نام نویسنده و دخل و تصرف در آن پیگرد قانونی دارد!

 

 



 

 

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

 

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

 

 

 

شرکت گوگل یکی از پیشتازان استفاده و توسعه آژاکس می باشد، استفاده بیش از حد این شرکت در سرویس های خود و موفقیت آن ها در طراحی باعث شده تا طراحان وب نیز برای افزایش بارگذاری و انعطاف پذیری بیشتر با کاربران خود از این فناوری در خلق آثار جدید خود بهره ببرند. اگر شما تا به حال از سرویس پست الکترونیک جی میل استفاده کرده باشید، به سرعت آن، سرویس گوگل مپ را به جلوه های بصری آن و مترجم گوگل را به سادگی و در حین حال قابلیت های آن می شناسید، این ها نمونه هایی از خدمات اینترنتی هستند که مهندسین گوگل آن ها را به کمک فناوری آژاکس ساخته اند. از نمونه های دیگر این گونه وبسایت ها می توان جامعه های مجازی اینترنتی، آفیس آنلاین و ... را نام برد.

 

 

 

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

 

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

 

آژاکس می تواند به پویا بودن محتوای وبسایت و خلق جلوه های سمعی و بصری وبسایت و ارائه خدمات گسترده به کاربران کمک شایانی نماید و حتی می توان به گونه از آن بهره برد که در مقابل هر یک از رفتارهای کاربران، عکس العملی مناسب داشته باشد با توجه ماهیت آژاکس در نقل و انتقال اطلاعات، بکارگیری این فناوری برای ایجاد برنامه های تحت وب و سایت های اینترنتی معایب و مزایایی را نیز دارد که سعی می کنیم در این مقاله آن ها را مورد بررسی قرار دهیم:

 

چرا آژاکس خلق شد ؟

 

تاریخچه پیدایش آژاکس به یک دهه قبل از ابتکارات مایکروسافت در اسکریپت نویسی از راه دور بازمی ‌گردد. یکی از دغدغه های پیش روی طراحان برنامه ها و مروگرهای تحت وب در گذشته، بارگذاری غیر همزمان عناصر وب، بدون بارگذاری کل عناصر و دریافت یک درخواست URL جدید از مرورگر بوده است، بارگذاری کل محتوای یک وبسایت علاوه بر کاهش سرعت دریافت اطلاعات، می تواند، پهنای باند و پردازش اضافی روی سرور ایجاد کند. مایکروسافت برای حل این مشکل Iframe ها و عناصر Layer در IE3 مرورگر خود و در سال 1996 گنجاند، که به کمک آن برنامه نویس وب می توانست اطلاعات را بصورت یک فریم جداگانه در وبسایت خود به نمایش بگذارد، این روش توانست مشکل بارگذاری سریع اطلاعات و همچنین عدم بارگذاری مجدد اطلاعات را در درخواست صفحات جدید اینترنتی حل نماید ولی مشکلاتی همچون: زیاد شدن مصرف پهنای باند، افزایش پردازش سرور و چسبناک نبودن پیوندها جهت ذخیره محتوای وبسایت از مشکلاتی بود که باعث گردید تا روش مناسبی جهت طراحی وب به حساب نیاید.

 

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

 

 

 

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

 

مایکروسافت در سال 2000 و در نسخه IE6 به فکر ایجاد زبان برنامه نویسی افتاد که بتواند بصورت تعاملی بین کاربران و سرویس دهنده ارتباط برقرار کند و این ارتباط فقط در زمان درخواست کاربر اتفاق پذیرد، شرکت مایکروسافت آن را تحت شیء XMLHttpRequest را به کابران مرورگر خود ارائه کرد و پس از سیر تکاملی که پیش آمد توانست معماری استفاده از شیء XMLHttpRequest را در کنار فناوری ها قبلی در مروگر خود جای دهد و در نهایت موتور آژاکس خلق گردید.

 

تکنیک آژاکس جهت بارگذاری اطلاعات

 

کدهای خام زبان های برنامه نویسی پرکاربردی همچون .Net و php پس از ترجمه و پردازش توسط سرور به واسطه مرورگر به کاربران و اطلاعات قابل درک ترجمه شده و هر درخواست بصورت کدهای HTML به کاربران ارسال می گردد، وبسایت های اینترنتی عادی از پیوندها (Link) جهت نشان دادن صفحات سایت استفاده می کنند و هنگامی که کاربر به قسمتی دیگری از وبسایت مراجعه کند یک درخواست جدید HTTP نیز فراخوانی می گردد و صفحه جدید و اطلاعات مورد نیاز کاربر نیز نمایش داده می شود.

 

در صورتی که وبسایتی که از آژاکس برای طراحی وب خود استفاده نموده باشد، در صورتی که درخواستی از سوی کاربر به سایت فرستاده شود، این درخواست جدید و نمایش اطلاعات فقط شامل واکشی اطلاعات مورد نیاز از سرور و یا پایگاه داده می باشد و دیگر خبری از دریافت HTTP و پیوند جدید نیست و کلیه پیوندهای وبسایت نیز از دید کاربر مخفی و در قالب همان صفحه اصلی و توسط موتور آژاکس انجام می پذیرد.

 

یکی از دلایلی که آژاکس را ارتباط ناهمزمان ایکس ام ال و جاوا اسکریپ نامیده اند به این دلیل می باشد که آژاکس می تواند هر کدام از این دو تکنولوژی جاوا اسکریپت و ایکس ام ال را در هنگام نیاز و بدون تداخل به خدمت گیرد.

 

برای درک عملکرد آژاکس، فرض کنید یک صفحه اینترنتی عضویت ساخته اید، این فرم باید به گونه ای باشد تا بتواند اطلاعات کاربران را بررسی نماید و در صورت اشتباه بودن مقادیر مورد خطا به کاربر تذکر داده شود، همچنین یکتا بودن نام کاربری عضو جدید باید بررسی گردد و در صورت تکراری بودن به او اطلاع داده شود.

 

در صورتی که از زبان های برنامه نویسی وب همانند php برای اعتبار سنجی استفاده کنید، به طور ناخواسته باعث افزایش ترافیک وبسایت و پردازش بر روی سرور نمودید! همچنین در صورت وجود نام کاربری باید به صفحه جدید جهت اعلان وضعیت منتقل گردید که خود نیز باعث گرفتن وقت کاربران خواهد شد.

 

آژاکس با استفاده از موتور قدرتمند خود اجازه می دهد تا آن بخش هایی که نیاز به ارسال به سرویس دهنده را ندارد، همانند بررسی فرم های ثبت نام اینترنتی از جاوا اسکریپ و آن بخش هایی که مثل بررسی یکتا بودن نام کاربری می باشد بصورت ایکس ام ال از پایگاه داده بررسی و در نهایت بصورت پاسخ قابل درک به کاربر ارسال شود.

 

 

مزایای آژاکس در طراحی صفحات وب

 

به طور کلی می توان مزایای استفاده از آژاکس را در طراحی صفحات وب بصورت زیر بر شمرد:

 

1. نا همزمان بودن پردازش ها

 

همان طور که گفته شد آژاکس اطلاعات مورد نیاز کاربر را دریافت و ارسال می کند، این ویژگی، قابلیت چند نخی (Multi Thread) را در صفحات و برنامه های کاربردی تحت وب ایجاد می کند، چرا که به جای دریافت کل اطلاعات بخش های خواسته شده بارگذاری شده و اجزای دیگر می تواند برای پردازش و عملیات دیگر اختصاص یابد و در نهایت باعث افزایش سرعت تبادلات نیز گردد.

 

2. بارگذاری اطلاعات مورد نیاز کاربر

 

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

 

3. اعلان وضعیت نقل و انتقال اطلاعات

 

هنگامی که یک وبسایت که از فناوری آژاکس بهره جسته را مشاهده می کنید، موتور اصلی آن در مرورگر بارگذاری می گردد و مطابق با رفتارهای شما به عنوان یک کاربر می تواند پیغام هایی که برنامه نویس برای شما در نظر گرفته، که بصورت پیش فرض مخفی است نمایان شود و شما را در جریان کار قرار دهد و دیگر برای نمایش اطلاعات با صفحه سفید روبرو نخواهید شد.

 

4. عدم استفاده بیهوده از منابع سرویس دهنده (Server) 

 

یکی از نکات مورد توجه در طراحی و برنامه نویسی وب کاهش پهنای باند مصرفی، کاهش فضای استفاده شده و همچنین کاهش پردازش ها می باشد. که در صورتی شما به عنوان یک برنامه نویس نتوانید این معضلات را حل نمایید احتمالاً مجبور خواهید بود که هزینه اضافی برای هر یک از موارد ذکر شده به سرویس دهنده خود بپردازید!

 

یکی از روش های مناسب جهت کاهش بار اضافی در سمت سرویس دهنده استفاده از آژاکس می باشد، از آن جا که با بارگذاری هر کدام از عناصر صفحات وب پهنای باند مصرفی نیز افزایش می یابد می توان با به کارگیری تکنیک آژاکس، از بارگذاری بی مورد کل صفحات یک وبسایت که به مراجعه به صفحات مختلف آن صورت می گیرد جلوگیری نمود. 

 

5. رابط کاربری مناسب

 

وبسایت های که از آژاکس بهره می برند می توانند ویژگی های بصری خاصی را به کار گیرند که پیشتر و توسط جاوا اسکریپ وجود نداشت، منوهای کشویی، ویرایش عکس، انجام عملیات مختلف و ... که در نهایت می تواند به جذب مخاطب بیشتر و تعامل با کاربران به استفاده گرفته شود.

 

6. جلوگیری از حملات توسط هکرها

 

یکی از متداول ترین روش های دسترسی هکرها به اطلاعات از طریق حمله بصورت تزریق به پایگاه داده (SQL Injection) می باشد. استفاده از تکنیک های آژاکس می تواند به عنوان یکی از روش های مخفی سازی آدرس صفحات اینترنتی جلوی دسترسی هکرها را به آدرس صفحات گرفته و امنیت وبسایت را تا حد زیادی نیز افزایش دهد، البته بیشتر برنامه نویسان معتقد اند که آژاکس به جهت جلوگیری از حملات تزریقی خلق نشده است و در صورت عدم رعایت مسائل امنیتی پایه برنامه کاربردی تحت وب آن ها از خطر حملات هکرها نیز در امان نخواهند بود.

 

البته این نکته نیز باید در برنامه نویسی توسط آژاکس در نظر گرفته شود که کدهای جاوا اسکریپت از آن جا که در مرورگر کاربر ترجمه می شوند قابل دسترس و مشاهده می باشند، پس جهت جلوگیری از سوء استفاده توسط هکر ها باید پردازش های مهم و یا ورود به بخش کاربران را توسط زبان برنامه نویسی به کار گرفته در طراحی وبسایت همانند .Net و phpو بدون دخالت آژاکس ایجاد گردد و فقط از جلوه های اعتبار سنجی آژاکس برای صحیح بودن نام کاربری و رمز عبور استفاده نمود.

 

معایب آژاکس در طراحی صفحات وب

 

آژاکس در کنار امکانات مفیدی که در اختیار کاربران و طراحان وب قرار می دهد معایبی نیز دارد: 

 

1. عدم ذخیره اطلاعات توسط موتورهای کاوش

 

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

 

2. عدم پشتیبانی برخی مرورگرها

 

از آن جا که آژاکس از جاوا اسکریپت در سمت میزبان و از ایکس ام ال در سمت سرویس دهنده استفاده می نماید، جهت اجرای آژاکس در مرورگر کاربران باید از فعال بودن دو ویژگی Applet Java و ActiveX در مرورگر کاربران اطمینان حاصل نمود و در صورت غیر فعال بودن پیغام مناسبی را به جهت رفع این مشکل برای کاربران در نظر گرفت، از طرفی نیز کاربران زیادی هستند که از مرورگرهای قدیمی استفاده می کنند که امکان اجرای قابلیت ها جدید آژاکس و نسل جدید HTML5 را ندارد و از آن جا که برای موتور مرورگر شناسانده نشده، به طبع قادر به اجرای کدهای جدید نبوده و کاربران مرورگرهای قدیمی در جهت مشاهده وبسایت هایی که از این فناوری ها بهره می جویند با مشکل و خطا مواجه می گردند.

 

 

از آن جا که فناوری آژاکس، فناوری نسبتاً جدید است و همانند دیگر فناوری های جدید ارائه شده در کنار مزایایی که دارد معایبی را نیز در پی خواهد داشت، شما باید به عنوان یک برنامه نویس قبل از طراحی و اجرای پروژه ای جدید در نظر بگیرید که آیا این امکانات همان چیزی است که شما انتظارش را داشته اید یا خیر؟ و یا اینکه در طراحی کدام بخش از وبسایت باید از این فناوری بهره جست تا هم بتوان از ویژگی های قدرتمند آژاکس استفاده کرد و هم ضریب اطمینان و نفوذ را برای استفاده همگان از برنامه کاربردی تحت وب افزایش داد.

 

چنانچه تصمیم به یادگیری و پیاده سازی پروژه های تحت وب خود با فناوری آژاکس نمودید می توانید کتاب های آموزشی برنامه نویسی به زبان آژاکس را از پیوند زیر دریافت نمایید:

 

http://www.bit.ly/ajax-e-book/

 

نویسنده : علی لفظی قاضی


 
به یک وبسایت نیاز دارید؟
فروشگاه ساز می خواهید؟