AJAX چیست ؟
-
Ajax از چه تکنولوژی هایی استفاده میکند؟
Ajax تنها یک کلمه است اما پشت آن مفاهیم و تکنولوژیهای مختلفی قرار دارد که استفاده از این تکنیک را میسر میسازد. تکنولوژیهایی که در پشت پرده یعنی در سرور فعال هستند و تداخلی با فعالیت کاربر در سایت ندارند. HTML (یا XHTML) و CSS بخشی مهمی در کار با Ajax هستند و ما به کمک آنها محتوای صفحه را نمایش میدهیم. از فناوری DOM (Document Object Model) برای تعامل بیشتر با دادهها و نمایش پویای عناصر استفاده میکنیم.
همینطور به کمک XML دادهها را تبادل کرده و با XSLT دادهها را مدیریت میکنیم. همینطور XMLHttpRequest نقش مهمی در Ajax ایفا میکند و اجازه میدهد دادهها به طور غیرمتقارن جا به جا شوند. همینطور برای یکپارچهسازی تکنولوژیهای بالا از زبان جاوا اسکریپت استفاده میکنیم. به خاطر سنگین بودن فرمت XML، برای تبادل دادهها بیشتر از JSON به جای XML استفاده میشود و حتی امکان استفاده از HTML فرمت بندی شده یا متن ساده نیز وجود دارد. تصویر زیر به شما کمک میکند Ajax را درک کنید.
میتوانیم تصویر بالا در مراحل زیر خلاصه کنیم و مرحله به مرحله بررسی کنیم که Ajax چطور کار میکند. این تصویر برای آشنایی با Ajax کمک زیادی به شما میکند.
- ابتدا یک رویداد در client یعنی مرورگر کاربر رخ میدهد.
- یک شیء از نوع XMLHttpRequest ساخته میشود.
- شیء XMLHttpRequest با اطلاعات لازم پیکربندی میشود.
- سپس این شیء یک تقاضای غیر همزمان به سرور ارسال میکند.
- وب سرور نیز پس از انجام پردازش لازم، نتیجه را که حاوی شیء XML (یا JSON) است برمیگرداند.
- شیء XMLHttpRequest تابع callback (تابعی که پس از انتهای عملیات فراخوانی میشود) را صدا میزند.
- نتیجه بدست آمده (شیء XML) توسط تابع Callback پردازش میشود.
- در نهایت ساختار HTML صفحه بروز رسانی میشود.
این رو گفتیم به عنوان مقدمه چون امروز می خواهیم در مورد Ajax صحبت کنیم تکنیکی که باعث می شود کل صفحه دوباره بارگذاری نشود پس این را مطالعه کنید.
اگر تمایل دارید برای شرکت خود اقدام به طراحی سایت ارزان کنید پیشنهاد می کنم ابتدا مقالات مربوط به تفاوت طراحی سایت فروشگاهی و طراحی سایت شرکتی را مطالعه کنید. من به شما پیشنهاد می کنم خدمات طراحی سایت پیام آوا را برای این کار نگاه کنید.
AJAX چیست ؟
ماهیت صفحات وب و پروتکل HTTP به گونه ای است که به ازای هر کنش و واکنش میان کاربر و سایتی که در حال کار با آن است، کل یک صفحه وب از نو بارگذاری و تازه سازی (refresh) می شود.
AJAX فناوری جدیدی است که تغییر محسوسی را در این سناریو به وجود می آورد؛ به این ترتیب که به جای بارگذاری مجدد کل صفحه، فقط قسمتی تغییر می کند که قرار است اطلاعات جدید را به نمایش درآورد و کلیه عملیات ارسال اطلاعات و دریافت نتایج در پشت صحنه انجام می شود AJAX .موجب آزاد شدن پهنای باند اینترنت و در نتیجه میلیاردها دلار صرفه جویی اقتصادی در این زمینه می شود و این به نوبه خود انقلابی در عرصه وب و فضای سایبر به شمار می رود.
AJAX مجموعه ای از استانداردها و فناوری های وب است که به کمک آنها می توان برنامه هایی مبتنی بر وب تولید کرد که به آسانی با کاربران تعامل داشته باشند؛ این فناوریها در جهت تبادل دادهها با یک سرور و بروز رسانی قسمتی از یک صفحه وب بدون بارگذاری مجدد آن است.
فن آوری های مورد استفاده
عبارت Ajax به طیف وسیعی از فن آوری های وب اشاره دارد که میتوانند برای پیاده سازی یک برنامه تحت وب بکار روند. فن آوریهایی که در پشت صحنه و در سرور فعالیت می کنند و در نتیجه با وضعیت جاری صفحه وب تداخلی ندارند. بطور کلی میتوان گفت فن آوریهای زیر مورد استفاده قرار میگیرند HTML یا XHTML) و (CSS به منظور نمایش محتوا - فن آوری DOM (Document Object Model) یا مدل شیئی صفحهبرای نمایش پویای داده ها و تعامل با آنها. XML برای تبادل داده ها و XSLT برای مدیریت داده ها. XMLHttpRequest نیز برای تبادل غیر متقارن داده ها بکار میرود. JavaScript به منظور یکپارچه سازی این فن آوری ها البته در حال حاضر عمدتاً بجای XML (که فرمتی نسبتاً سنگین است) از JSON برای تبادل داده ها استفاده میشود و حتی الامکان استفاده از HTML فرمت بندی شده یا متن ساده نیز به این منظور وجود دارد.
البته توجه داشته باشید که همواره لازم نیست استفاده از Ajax بخاطر انجام تغییری در صفحه باشد، گاهی اوقات شما ممکن است بخواهید یک عملیات سروری (همچون یک عملیات دیتابیس) را توسط Ajax انجام دهید، به گونه ای که کاربر متوجه نشود.
چرا AJAX ؟
1- عدم نیاز به بارگذاری مجدد کل یک صفحه وب
2- صرفهجویی در مصرف پهنای باند
3- افزایش محسوس سرعت نرمافزارهای تحت وب
4- پشتیبانی از بیشتر مرورگرهای معروف
5- توانایی سفارشی سازی کنترلهای سرور به منظور استفاده از ظرفیتهای client
مزایای استفاده از Ajax در طراحی سایت
- پشتیبانی مرورگرهای معروف از تکنیک Ajax، از جمله IE، فایرفاکس، کروم و سافاری
- سرعت و کارایی بهتر برای قسمت هایی از سایت که نیاز نیست کل اطلاعات سایت دوباره بارگذاری شود مثل فرم های ثبت نام و سبد خرید
- فقط قسمتی که تکنیک Ajax استفاده شده است در طراحی سایت تغییر می یابد یعنی اینکه فقط قسمتی از یک صفحه نه کل صفحه سایت رفرش شود
شرکت پیام آوا بهترین و با کیفیت ترین خدمات طراحی سایت را در قالب طراحی سایت ارزان و مقرون به صرفه به شما ارائه می کند. پیام آوا بهترین خدمات طراحی سایت تهرانرا به شما عرضه می کند. همچنین طراحی اپلیکیشنموبایل را با به روز ترین تکنولوژی کد نویسی دنیا را از پیام آوا بخواهید. طراحی اپلیکیشن موبایل را با ما تجربه کنید.
معایب Ajax
البته هر پدیده جدیدی در کنار ارائه مزایای متعدد ممکن است نقاط ضعف یا کمبودهایی داشته باشد که در اینجا به برخی از مشکلات فن آوری Ajax نیز اشاره میکنیم:
- هر مرورگری که از JavaScript یا سیستم تقاضای XMLHttp پشتیبانی نکند، یا در صورتی که کاربر این قابلیت مرورگر خود را غیر فعال کرده باشد، امکان استفاده صحیح از صفحاتی که به Ajax متکی هستند را نخواهد داشت. دستگاه هایی از جمله تلفنهای همراه هوشمند و PDAها نیز ممکن است پشتیبانی کاملی از این فن آوری نداشته باشند اگرچه این مسئله در آینده نزدیک مرتفع خواهد شد.
- با توجه به ساختار صفحاتی که از این فن آوری استفاده می کنند و ماهیت پویای محتوای Ajax، ممکن است خواندن این محتوا توسط برنامه های Crawler امکان پذیر نباشد، در نتیجه این صفحات ممکن است بخوبی در موتورهای جستجوگر رتبه بندی نشوند.
- از نقطه نظر برنامه نویسی نیز حفظ و نگهداری، اشکالزدایی و تست صفحاتی که چنین محتوایی تولید می کنند دشوار خواهد بود.
- برخلاف صفحات معمولی که در آنها کاربر میتواند با فشردن دکمه Back صفحه کلید یا آیکون Back مرورگر به صفحات قبلی بازگردد، صفحاتی که از محتوای Ajax استفاده می کنند امکان بازگشت به صفحه پیشین را ندارند، البته این مسئله در HTML5 به نوعی حل شده است.
- هنگامی که شما از Ajax برای تغییر داینامیک محتوای صفحه استفاده میکنید، امکان مشاهده محتوای اضافه شده را در بخش view source صفحه نخواهید داشت زیرا محتوای صفحه همان چیزی است که در ابتدا از سرور خوانده شده بود، به این ترتیب پس از رفرش مجدد صفحه نیز محتوا به همان حالت قبلی برمیگردد. اگر میخواهید در محیط ASP.NET از Ajax استفاده کنید باید در ابتدای صفحه خود یک کنترل ScriptManager قرار دهید. نماد اصلی Ajax در ASP.NET، کنترلی به نام UpdatePanel است. میتوانید این کنترل را به همراه سایر کنترلهای مربوط به Ajax در برگه ای با نام Ajax در نوار ابزار ویژوال استودیو بیابید.
Ajax در طراحی سایت
اگر بخواهیم به طور خلاصه به معرفی ajax بپردازیم اصطلاح AJAX را اولین بار کارشناسی از شرکت Adaptive Path به نام جسی جیمزگرت در مقاله ای با عنوان ای جکس؛ و خیلی سریع این تکنیک توسط برنامه نویسان در سراسر جهان استفاده شد، عامیانه ترین مثال برای Ajax سیستم Google Suggest که وقتی شما عبارتی را جستجو می کنید گوگل عبارتهای دیگر را با تکنیک Ajax برای شما می آورد یا مثلا سبدهای خرید سایت های فروشگاه اینترنتی وقتی شما کالایی را به سبد خرید اضافه می کنید فقط سبد خرید آپدیت می شود نه کل سایت یا در خیلی از فرم های ثبت نام این تکنیک به کار برده شده است یا مثلا در سایتی که خود ما طراحی کردیم کاربر بدون اینکه دوباره صفحه بارگذاری شود و حجم زیادی از پهنای باند کم شود خیلی راحت با تکنیک Ajax محصول شما بارگذاری می شود امروزه بسیاری از سایت های معروف دنیا نظیر فیس بوک، Google Maps، Gmail، YouTube از این تکنیک استفاده می کنند که کاربران را خسته نکنند و سرعت سایت بالاتر برود
کاربردهای فن آوری Ajax
اگر شما میخواهید یک برنامه نویس خوب وب باشید، تسلط بر فن آوری های پیشرفته ای همچون Ajax از ضروریات کارتان خواهد بود. با توجه به توضیحاتی که ارائه کرده ایم، قطعاً نمیتوان فهرست مشخصی از کاربردهای Ajax ارائه کرد چون این فن آوری میتواند در بخشهای مختلف کاربرد داشته باشد اما در اینجا برخی کارکردهای رایج و مهم Ajax را بطور مختصر بررسی می کنیم:
بررسی وجود کاربر مشابه در هنگام ثبت نام کاربران: یکی از کاربردهای نسبتاً ساده ولی در عین حال مفید Ajax، بررسی دیتابیس سایت در هنگام ثبت نام کاربران جدید میباشد. فرض کنید کاربری قبلاً در سایت شما با یک نام کاربری خاص ثبت نام کرده است، اکنون کاربر دیگری میخواهد با همین نام کاربری ثبت نام کند و احتمالاً شما نمیخواهید دو کاربر با یک نام کاربری یکسان ثبت نام کنند. در حالت معمول شما میتوانید پس از فشردن دکمه ثبت نام توسط کاربر و در کد مربوط به دکمه ثبت نام، دیتابیس را بررسی کرده و در صورت وجود نام کاربری یکسان، عملیات ثبت کاربر جدید را متوقف کنید یا به کاربر پیام بدهید. در هر صورت به این ترتیب یک postback کامل خواهید داشت که شاید چندان خوشایند کاربر نباشد. اما به کمک Ajax میتوانید عملیات postback را حذف کرده و سرعت کار را افزایش دهید. کافیست یک تابع استاتیک (WebMethod) در کد سرور بنویسید که دیتابیس را چک کرده و در صورت وجود نام کاربری مشابه یک مقدار مشخص بازگشت دهد. سپس میتوانید در تابع client مربوط به خروج از کادر متنی نام کاربری یا در تابع client مربوط به کلیک دکمه ثبت نام، از طریق JQuery این تابع را فراخوانی نمایید و در صورت وجود نام کاربری یکسان در دیتابیس پیامی به کاربر بدهید و البته اجازه اجرای کد سرور را نیز ندهید. به این ترتیب احتیاجی به رفرش صفحه نخواهد بود، همین تکنیک را میتوانید به صورتهای دیگری نیز استفاده کنید.
احتمالاً نحوه نمایش commentها در سایت facebook یا نمایش تصاویر در بخش جستجوی تصاویر google توجه شما را جلب کرده است. هر دو سایت رویکرد مشابهی دارند، در ابتدا بخش کوچکی از اطلاعات را نمایش میدهند تا صفحه خیلی سریع بارگذاری شود، سپس در صورت لزوم اطلاعات بیشتر را آرام آرام بارگذاری می کنند. شما نیز میتوانید به کمک Ajax این تکنیک زیبا را شبیه سازی کنید. به این منظور باید یک تابع سرور برای ایجاد اطلاعات صفحات جدید در قالب html بسازید، و این تابع را در رویداد scroll down صفحه فراخوانی کنید. در این صورت وقتی کاربر صفحه را scroll کرده و به انتهای صفحه برسد تابع استاتیک مربوطه از JQuery Ajax اجرا شده و محتوای صفحه جدید به مرورگر ارسال میشود. سپس شما این محتوای جدید را در صفحه نمایش میدهید. البته از آنجاییکه مرورگر چیزی جز html نمیفهمد شما هم باید صرفاً محتوای html ارسال کنید، یعنی تابع استاتیک سرور باید اطلاعات را به فرمت html تولید کرده و به صورت رشته ارسال کند. حتی شما میتوانید در زمان اجرای پشت صحنه تابع سرور دریافت صفحات (که ممکن یکی دو ثانیه طول بکشد) یک فایل gif animated را در صفحه پخش کنید تا کاربر متوجه شود که صفحات جدید به زودی نمایش داده میشوند.
یکی از کاربردهای مفید Ajax در توسعه وب، انجام فعالیتهای دیتابیسی در پشت صحنه میباشد. از آنجا که عملیات مربوط به دیتابیس همواره سنگین و زمان بر بوده و میتواند موجب کندی اجرای صفحات وب شود، شما میتوانید برخی از عملیاتهای مربوط به دیتابیس از جمله و خواندن و نوشتن و یا حذف از دیتابیس را توسط Ajax انجام دهید. به این ترتیب احتیاجی به رفرش صفحه نخواهد بود و در نتیجه سرعت اجرای سایت شما افزایش خواهد یافت. البته بخاطر داشته باشید که ممکن است به دلایل مختلف (از جمله عدم پشتیبانی مرورگر یا غیر فعال کردن جاوا اسکریپت توسط کاربر) امکان استفاده از Ajax وجود نداشته باشد، و در این شرایط شما باید سناریوی دیگری را به منظور مدیریت فعالیتهای دیتابیس به پیش ببرید.
چرا باید از Ajax استفاده کنیم؟
برنامههای تحت وب که از Ajax استفاده میکنند خصوصیات زیر را دارند:
- استفاده مولفههای آشنا و تعاملی رابط کاربری مانند نشان دهنده پیشرفت (progress bar)، tooltip و همچنین پنجرههای pop-up
- کارایی در برنامههای وب فرم بالا است. زیرا بیشتر بخشهای پردازشی صفحه وب میتوانند در مرورگر مدیریت شوند
- به روز رسانی مقطعی صفحه (partial update) که تنها بخش تغییر یافته صفحه refresh میشود
- یکپارچه سازی بخشهای client-side برنامه با خدمات برنامه سرور، بخصوص در فرآیند تایید اعتبار، تعیین نقش کاربران و پروفایل کاربران
- توانایی سفارشی سازی کنترلهای سرور به منظور استفاده از ظرفیتهای client
- پشتیبانی از بیشتر مرورگرهای معروف، مانند IE، فایرفاکس، کروم و سافاری
معایب Ajax
البته هر فناوری جدید در کنار مزایا، ممکن است نقاط ضعف یا کمبودهایی هم داشته باشد. در اینجا به برخی از مشکلات تکنولوژی Ajax اشاره میکنیم:
- هر مرورگری که از JavaScript یا سیستم تقاضای XMLHttp پشتیبانی نکند یا اگر کاربر این قابلیت را در مرورگر خود غیر فعال کرده باشد، امکان استفاده درست از تکنولوژی Ajax وجود نخواهد داشت. بعضی از دستگاههای دیجیتال مانند گوشیهای هوشمند و PDAها نیز ممکن است پشتیبانی کاملی از این فناوری نداشته باشند. البته این موضوع در حال بررسی بوده و در آیندهای نزدیک به طور کامل رفع خواهد شد.
- با توجه به ساختار تکنولوژی Ajax و محتوای پویای آن، ممکن است Crawler موتور جستجو به خوبی نتواند این صفحات را پردازش کرده و بخواند. در نتیجه ممکن است صفحاتی که از Ajax استفاده میکنند در برخی از موتورهای جستجو رتبه خوبی کسب نکنند.
- از نظر برنامه نویسی حفظ و نگهداری، اشکال زدایی و تست صفحاتی که چنین محتوایی دارند دشوار خواهد بود.
- برخلاف صفحات معمولی که در آنها کاربر با فشردن دکمه یا آیکون Back در مرورگر میتواند به صفحه قبلی بازگردد، در Ajax امکان بازگشت به صفحه قبل وجود ندارد، البته این مسئله در HTML5 تا حدودی حل شده است.
هنگامی که شما از Ajax برای تغییر داینامیک محتوای صفحه وب استفاده میکنید، امکان مشاهده محتوای اضافه شده به صفحه را در بخش view source نخواهید داشت زیرا محتوای صفحه همان چیزی است که در ابتدا از سرور خوانده شده بود، به این ترتیب پس از رفرش مجدد صفحه نیز محتوا به همان حالت قبلی باز میگردد.
بیشتر بخوانید: طراحی سایت شرکتی
بیشتر بخوانید: طراحی سایت فروشگاهی
بیشتر بخوانید: طراحی سایت تهران
بیشتر بخوانید: طراحی سایت ارزان
بیشتر بخوانید: طراحی سایت حرفه ا