ایجکس (AJAX) چیست؟
اِیْجکس (AJAX؛ سرواژهٔ Asynchronous JavaScript And XML)، مجموعهای از استانداردها و فناوریهای وب است که به کمک آنها میتوان برنامههایی مبتنی بر وب تولید کرد که به آسانی با کاربران تعامل داشته باشند. با استفاده از این فناوریها و با کمک انتقال تکههای کوچک داده و اطلاعات از رایانهٔ خادم (Server)، صفحات وب از حالت منفعل خارج میشوند و واکنشهایی مناسب با رویدادها انجام میدهند. ایجکس معماری جدیدی برای برنامههای تحت وب است، که با سرعت بسیار زیادی در حال گسترش بوده، و کمتر کاربری در اینترنت است که هنوز گذرش به یکی از صفحاتی که با این معماری ساخته شدهاند نیفتاده، و از قابلیتهای فوقالعاده آن بهرهمند نشده باشد. Gmail, Google Map, Google Suggest, Orkut، و اسامی آشنای دیگر، نمونههایی هستند از کاربرد ایجکس. با استفاده از این معماری، صفحات وب تعامل بسیار خوبی با کاربران خواهند داشت. بعلاوه، مهمترین مزیت این معماری این است که دیگر برای انجام هر کاری، لازم نیست صفحه وب دوباره بارگذاری شود. در این مقاله به بررسی تاریخچه، اصول، و شیوهٔ انجام کارها در این معماری خواهیم پرداخت.
مجموعه فناوریهای تشکیل دهنده ایجکس عبارتند از:
- نمایش استاندارد با استفاده از اکساچتیامال و سیاساس
- نمایش پویایی و تعاملات با استفاده از مدل شیءگرای سند
- تبادل و دستکاری دادهها با استفاده از XML و تبدیلات اکساسال،
- بازیابی دادهها به صورت غیر همروند با استفاده از XMLHttpRequest،
- نهایتاً جاوااسکریپت برای سرهمبندی همه چیز با هم.
پیشینه
واژه ایجکس (AJAX) را برای اولین بار Jesse James Garrett در فوریه سال ۲۰۰۵ در مقاله Ajax: A New Approach to Web Applications استفاده کرد. اگرچه نام ایجکس برای نخستین بار در سال ۲۰۰۵ ابداع شد، اما تاریخچه اکثر فناوریهایی که به ایجکس منتهی شدند به حدود یک دهه قبل و ابتکارات مایکروسافت در اسکریپتنویسی از راه دور بازمیگردد. با این حال تاریخچه فناوریهایی برای بارگذاری غیرهمروند محتویات یک صفحه وب، بدون نیاز به بارگذاری دوباره صفحه، به عناصر IFRAME (که در سال ۱۹۹۶ در نسخه ۳ IE ارائه شد) و عناصر LAYER (که در سال ۱۹۹۷ در نسخه ۴ مرورگر نتاسکیپ ارائه شد، اما در نسخههای اخیر موزیلا متروکه شدهاست) بازمیگردد. هردوی این عناصر، یک خصوصیت src دارند که میتواند یک آدرس URL خارجی را شامل شود و به این ترتیب اگر صفحهای شامل یک کد جاوااسکریپت بارگذاری شود که صفحه والد را دستکاری میکند، نتیجهای شبیه ایجکس خواهیم داشت.
اسکریپت نویسی از راه دور مایکروسافت (یا MSRS که در سال ۱۹۹۸ مطرح شد) جایگزین مناسبتری برای تکنیکهای گذشته به نظر میرسید. در این روش، دادهها بهوسیله یک جاوا اپلت دریافت میشد، و در سمت کلاینت برقراری ارتباط بهوسیله جاوااسکریپت انجام میگرفت. این روش در نسخههای ۴ و بعدتر اینترنت اکسپلورر و نتاسکیپ پشتیبانی میشود.
مایکروسافت در نسخهٔ ۵ اینترنت اکسپلورر شیء XMLHttpRequest را ارائه کرده و برای اولین بار در هاتمیل که در Microsoft Exchange Server ۲۰۰۰ ارائه شد، از این روش با استفاده از شی XMLHttpRequest بهره جست.
در نهایت با تغییر و تحولاتی که در این مسیر به وجود آمد و جایگزینی شیء XMLHttpRequest به جای جاوا اپلت، اکنون روشی برای اسکریپنویسی از راه دور متداول شده که آن را با عنوان ایجکس میشناسیم.
اما آنچه باعث شد پس از این مدت، ناگهان توجهها به سمت ایجکس جلب شود، تمرکز شرکت گوگل بر این معماری بود. وبسایتهایی از قبیل Google Map، جیمیل و فهرست محصولات گوگل پروژههایی بودند که باعث شد توجه کاربران، چه کاربران عادی و چه کاربران حرفهای، به نحوه کار آنها جلب شود.
ایجکس به عنوان معماری جدیدی برای وب
روش کار برنامههای کلاسیک وب چیزی شبیه این است: اکثر تعاملات کاربر با رابط کاربری باعث ارسال یک درخواست به سرور میشود. سرور پردازشهای لازم را انجام داده و سپس یک صفحه HTML به کلاینت بازمیگرداند. این مدل بر اساس هدف اصلی وب، یعنی ایفای نقش یک رسانه برای ابرمتن است. اما آنچه وب را برای ابرمتنها مناسب میکند، الزاماً آن را برای برنامههای نرمافزاری نیز مناسب نخواهد کرد. مورد اینجاست که برنامههای وب برای کاربرد (Application) بودن طراحی نشدهاند و این باعث شدهاست که در بسیاری موارد کاربر را نادیده بگیرند.
فرض کنید کاربر میخواهد در یک فروشگاه الکترونیک، مشخصات جنس بعدی را ببیند، یا یک جنس را به سبد خرید خود اضافه کند. اتفاقی که میافتد این است که برای انجام هریک از این کارها، چون نیاز است با سرور ارتباط برقرار شود، باید یک درخواست به سرور ارسال شده، سرور پردازشهای لازم را انجام دهد و سپس یک صفحه به عنوان نتیجه بازگرداند. کاربر هم در این میان میتواند با انگشتانش بازی کند!
گرچه ما به صفحات وب، با همین روند انجام فعالیتها عادت کردهایم، اما واقعاً روش کلاسیک برنامههای وب، گرچه از نظر تکنیکی مزایای بسیاری دارند، اما مشکلات عمدهای هم دارند. یکی از عمدهترین مشکلات صفحات وب را میتوان همروند کار کردن آنها دانست. (یعنی همین که وقتی درخواستی از سرور داریم، صفحه وب مقابلمان مسدود شده و باید منتظر بمانیم تا سرور کارش تمام شود و صفحهای به عنوان پاسخ برگرداند).
ایجکس چیست
ایجکس یک تکنولوژی نیست؛ بلکه مجموعهایست از تکنولوژیهایی که هر یک در جای خود تکنولوژی کامل و موفقی هستند، و اکنون به شکل جدیدی در کنار هم قرار گرفته و ایجکس را تشکیل دادهاند. تکنولوژیهایی که در ایجکس از آنها استفاده میشود عبارتاند از:
- نمایش استاندارد با استفاده از XHTML و CSS.
- نمایش پویایی و تعاملات با استفاده از Document Object Model (DOM).
- تبادل و دستکاری داده با استفاده از XML و XSLT.
- بازیابی دادهها به صورت غیر همروند با استفاده از XMLHttpRequest. و جاوااسکریپت برای سرهمبندی همه چیز با هم.
در واقع ایجکس (AJAX) ترکیبی از تکنولوژیهای فوق است و هیچ چیز جدیدی ارائه نمیدهد. همه شگفتی ایجکس در معماری هست که برای ساخت یک برنامه وب، با استفاده از این تکنولوژیها ارائه میدهد.
ای جکس یک شیوه جهت طراحی و توسعه وبگاهها بوده که جهت بالا بردن قدرت تعامل Interface سایت با کاربر و بالا بردن کیفیت عملکرد و قابلیتهای سایت مورد استفاده قرار میگیرد. ایجکس (AJAX) به صورت Client Side و با به کارگیری JavaScript و CSS مورد استفاده قرار میگیرد. امروزه در مبحث طراحی صفحات HTML تکنولوژی Ajax عامل حیات صفحه و ارضاء کاربر در مواجهه با واسط (Interface) تلقی میشود
ایجکس؛ معماری جدیدی برای وب
همانطور که اشاره شد، روش کار برنامههای کلاسیک وب چیزی شبیه این است: اکثر تعاملات کاربر با رابط کاربری باعث ارسال یک درخواست به سرور میشود. سرور پردازشهای لازم را انجام داده و سپس یک صفحه HTML به کلاینت بازمیگرداند. این مدل بر اساس هدف اصلی وب، یعنی ایفای نقش یک رسانه برای ابرمتن است. اما آنچه وب را برای ابرمتنها مناسب میکند، الزاماً آن را برای برنامههای نرمافزاری نیز مناسب نخواهد کرد. پیش از این به معایب روش کلاسیک و متداول اشاره کردیم. اکنون ببینیم Ajax چه پیشنهادی ارائه میدهد. قسمتهای مهم معماری پیشنهادی ایجکس به این قرارند: رخدادهای کوچک سمت سرور: اجزای درون یک برنامه وب میتوانند، درخواستهای کوچکی برای سرور ارسال کنند، اطلاعات مورد نیازشان را از سرور دریافت کنند، و هر قسمت از صفحه را که لازم است بر اساس DOM بهروز کنند، بدون اینکه تمام صفحه دوباره بارگذاری و ترسیم شود.
غیر همروند بودن: درخواستهایی که به سرور ارسال میشود، باعث مسدود شدن صفحهٔ درون مرورگر کلاینت نمیشوند. کاربر میتواند به کار با قسمتهای دیگر برنامه ادامه دهد و هنگامی که پاسخی از سرور دریافت شد، با بهروز کردن رابط کاربر، به کاربر اطلاع داده میشود.
عکسالعمل برای هر رخدادی: تقریباً میتوانیم برای تمام رخدادهایی که کاربر به وجود میآورد، با سرور ارتباط برقرار کنیم. مرورگرهای مدرن اکثر رخدادهایی را که سیستمعامل اجازه میدهد دریافت میکنند: کلیک کردن موس، حرکت موس روی شیء، زدن یک کلید و غیره. هر رخدادی میتواند باعث ارسال یک درخواست به صورت غیر همروند برای سرور شود.
بجای اینکه مرورگر در آغاز ارتباط تنها یک صفحه HTML را بارگذاری کند، یک موتور ایجکس (AJAX) را نیز همراه با صفحه بارگذاری میکند، که به زبان جاوااسکریپت نوشته شده و معمولاً مابین فریمهایی در صفحه پنهان شدهاست. این موتور عامل بهروز کردن رابط کاربریای که کاربر میبیند، و همچنین برقراری ارتباط با سرور در پشت پرده است. موتور Ajax امکان تعامل کاربر با برنامه را، مستقل از ارتباطات و نقل و انتقالات بین برنامه و سرور میدهد؛ بنابراین، کاربر دیگر شاهد یک صفحه خالی و ساعت شنی و انتظار برای انجام عملیات سمت سرور نخواهد بود.
آن دسته از فعالیتهای کاربر که باعث یک درخواست HTTP میشدند، اکنون با استفاده از جاوااسکریپت موتور ایجکس را فراخوانی میکنند. در مورد پاسخ به آن دسته از فعالیتهای کاربر که نیاز به ارسال درخواست به سرور ندارند (مانند اعتبار سنجیهای ساده دادهها، ویرایش دادههای درون حافظه سیستم کلاینت، و حتی هدایت کاربر به بخشهای مختلف برنامه در برخی موارد) موتور ایجکس خود وارد عمل میشود. اگر موتور ایجکس برای پاسخ گویی نیاز به چیزی از سمت سرور داشته باشد، (مثلاً اطلاعاتی را از بانک اطلاعاتی بخواهد، کدهای جدیدی برای رابط کاربر لازم داشته باشد و…) به صورت غیر همروند و معمولاً در قالب XML یک درخواست به سرور ارسال میکند. ارسال این درخواست هیچ وقفهای در کار کاربر با برنامه ایجاد نخواهد کرد . همانطور که پیش از این گفته شد، ایجکس مجموعهای از چند تکنولوژی است. موتور Ajax از این تکنولوژیها برای انجام وظایف مختلفی که بعهده دارد استفاده میکند.
پیشنهادهای ارائه شده با ایجکس
- قسمتهای مهم معماری پیشنهادی ایجکس به این قرارند:
- رخدادهای کوچک سمت سرور: اجزای درون یک برنامه وب میتوانند، درخواستهای کوچکی برای سرور ارسال کنند، اطلاعات مورد نیازشان را از سرور دریافت کنند، و هر قسمت از صفحه را که لازم است بر اساس DOM بهروز کنند، بدون اینکه تمام صفحه دوباره بارگذاری و ترسیم شود.
- غیر همروند بودن: درخواستهایی که به سرور ارسال میشود، باعث مسدود شدن صفحهٔ درون مرورگر کلاینت نمیشوند. کاربر میتواند به کار با قسمتهای دیگر برنامه ادامه دهد و هنگامی که پاسخی از سرور دریافت شد، با بهروز کردن رابط کاربر، به کاربر اطلاع داده میشود.
- عکسالعمل برای هر رخدادی: تقریباً میتوانیم برای تمام رخدادهایی که کاربر به وجود میآورد، با سرور ارتباط برقرار کنیم. مرورگرهای مدرن اکثر رخدادهایی را که سیستمعامل اجازه میدهد دریافت میکنند: کلیک کردن موس، حرکت موس روی شی، زدن یک کلید و غیره. هر رخدادی میتواند باعث ارسال یک درخواست به صورت غیر همروند برای سرور شود.
مشکلات ایجکس (AJAX)
اگرچه این روش مزایای بسیاری دارد و شکاف بین برنامههای رومیزی و برنامههای وب را بسیار کمتر کردهاست، اما مشکلاتی نیز دارد که هنگام کار به این روش، باید به آنها توجه کرد. یکی از مشکلاتی که در مورد ایجکس (AJAX) عنوان میشود، این مورد است که این روش کاربرد کلید Back مرورگرها را مختل کرده و این بر خلاف عادت کابران در محیط وب است. البته برای حل این مورد راهحلهایی پیشنهاد شده که این مقاله جای بحث در مورد آنها نیست. مشکل دیگر ایجکس مورد تأخیر شبکه و نگرانی در مورد زمان پاسخگویی سیستم است. مورد تأخیر شبکه در یک برنامه بر اساس Ajax باید با دقت در نظر گرفته شود. تأخیر در بارگذاری اولیه رابط کاربر برنامه، چیزیست که معمولاً برای کاربر قابل درک نیست و باید با دادن پیغامی مناسب، کاربر را از اینکه سیستم در حال بارگذاری، یا انجام فعالیتی و برقراری ارتباطی با سرور است، آگاه کرد. مورد دیگری که در مورد سیستمهای بر اساس Ajax وجود دارد، استفاده ایجکس از جاوااسکریپت است و این مورد که کاربر میتواند اجازه اجرای جاوااسکریپت در مرورگر خود را ندهد. پس باید پیش از شروع بارگذاری موتور ایجکس از اجازه داشتن اجرای جاوااسکریپت روی مرورگر کلاینت اطمینان پیدا کرد. البته در مورد IE نسخه ۶، به این مورد نیز باید توجه کرد که شی XMLHttpRequest به صورت ActiveX پیادهسازی شده و در نتیجه کاربر باید امکان استفاده از ActiveXها را نیز به مرورگر بدهد. مورد دیگری که باید به آن توجه داشت، این است که کدهای جاوااسکریپت برنامه را هر کسی به راحتی میتواند ببیند. در نتیجه بهتر است قسمتهایی از برنامه را که مربوط به امنیت، یا منطق پردازشی برنامه میشود، سمت سرور نگه داریم. به نظر میرسد ساخت سیستمی که ترکیب متوازنی از پردازشهای سمت سرور و یک موتور ایجکس قوی در طرف کلاینت باشد، میتواند راهحل بسیار مناسبی باشد.
چرا Ajax این قدر اهمیت دارد؟
فناوری ایجکس (AJAX) جدید است و شگفتانگیز بهنظر میرسد. ولی در حقیقت کل این شعبده بر اساس فناوریهایی بنا شده است که هماکنون موجودند: جاوا اسکریپت و XML. هر دوی این فناوریها تا حد زیادی باز هستند و منحصر به شرکت خاصی نیستند. به همین دلیل این روزها تمام محافل دنیای برنامه نویسی مملو از مقالات و تحلیلهایی درباره AJAX است. به عنوان نمونه میتوانید صفحه نخست سایت موسوم به کانال شبکه برنامه نویسان سان را بازکنید.
بیشتر این صفحه (در زمان نگارش این یادداشت) به مقالات و مطالب متنوعی درباره AJAX اختصاص یافته است. مجلات برنامهنویسی نیز مقالات متعددی در این زمینه منتشر کردهاند و سایتهای معروفی مانند O” Reilly و xml.com نیز در این باره مطلب دارند.
بنابراین ظرفیت بالایی برای تبدیل ایجکس به یک استاندارد جهانی وجود دارد. از این رو قرار است در تاریخ سیزدهم مارس سمینار مهمی در زمینه ایجکس (AJAX) برگزار شود. اگر همین الان به سایت ajaxseminar.com مراجعه کنید، متوجه میشوید که علاوه بر طراح این تکنیک، چندین برنامهنویس شاخص از شرکتهای بزرگی همچون یاهو در آن شرکت خواهند داشت.
این فناوری از یک جنبه دیگر نیز اهمیت دارد. بهدلیل عدم نیاز به بارگذاری مجدد کل یک صفحه وب، مقدار دادههایی که لازم است برای تکمیل یک Interaction میان کاربر و سایت مبادله شود، به شدت کاهش مییابد و این به معنی افزایش محسوس سرعت نرمافزارهای تحت وب، سهولت بهکارگیری اینترفیسهای مبتنی بر ایجکس و کاربرپسندترشدن آنها میشود. به همین دلیل این روزها اکثر پورتالهای بزرگ (مانند یاهو) مشغول طراحی اینترفیسهای مبتنی بر AJAX هستند.
با این همه مزایای ایجکس به همین موارد ختم نمیشود. تصور کنید وقتی در طول شبانه روز میلیاردها بار فرآیند بارگذاری مجدد صفحات وب تعاملی در شبکه اینترنت تکرار میشود، استفاده از ایجکس چگونه موجب آزاد شدن پهنایباند اینترنت و در نتیجه میلیاردها دلار صرفهجویی اقتصادی در این زمینه میشود و این به نوبه خود انقلابی در عرصه وب و فضای سایبر به شمار میرود. این تحول در شرایطی اتفاق میافتد که همزمان فناوریهای اینترنت پرسرعت همچون ADSL به شدت در حال رشد هستند.
حال تصور کنید اگر فناوری ایجکس در مقیاس گستردهای مورد استفاده نرمافزارهای تحت وب قرارگیرد. آنگاه افزایش سرعت کار با اینترنت چند برابر خواهد شد. چنین تحولی میتواند اینترنت را به کامپیوتر دوم کاربران تبدیل کند. به گونهای که برای آنها اجرای یک نرمافزار از روی وب تفاوت محسوسی با اجرای آن از روی کامپیوتر دسکتاپ نداشته باشد. در این صورت ممکن است واقعا بخش مهمی از توان پردازشی نرمافزارها، چه از نوع دسکتاپ و چه از نوع تحت وب به سیستمهای موسوم به Web Service واگذار شود. از این رو کسانی که مبتکر و مشوق ایده وب سرویس بودهاند، این روزها انگیزه تازهای برای سرعت بخشیدن به این فناوری پیدا کردهاند و تلاش میکنند دو فناوری ایجکس و وب سرویس را بهیکدیگر پیوند دهند و راهکارهای تازهای بیافرینند.
کدام سایتها از ایجکس (AJAX) استفاده کردهاند؟
دنیای برنامهنویسی وب هنوز درگیر هیجانات مربوط به آشنایی با این پدیده است و در حال بررسی مشکلات تکنیکی و هضم و جذب آن در بافت برنامههای تحت وب میباشد. به همین دلیل میزان استفاده عملی از آن چندان گسترده نیست. اما چون کارایی ایجکس دیگر برای همه ثابت شده است، حرکتهای بزرگی در سراسر اینترنت به سمت استفاده از این فناوری در جریان است. از جمله اینترفیس نسخه دوم Yahoo Mail که به نسخه بتا معروف است و فعلا در دسترس کاربران سرویس غیر رایگان یاهو قراردارد، از همین فناوری استفاده میکند که به زودی اینترفیس جدید در دسترس عموم قرار میگیرد. سرویس Gmail و Google Map نیز از این فناوری استفاده میکنند.
AJAX و سئو
موتورهای جستجو ابزارهایی ماشینی هستند که تفاوتهایی با انسان دارند. هرچند در توسعههای اخیر موتور جستجوگر گوگل، کدهای جاوااسکریپت نیز اجرا میشوند و تشخیص محتواهای دریافت شده با AJAX برای گوگل امکانپذیر شده است، با این حال هنوز تفاوتهایی در استفادهی واقعی از سایت و رفتارهای ماشینی موتور جستجوگر وجود دارند. بنابراین درهنگام طراحی سایت با اهداف سئو، توجه به محدودیتهای موجود در موتورهای جستجوگر به ویژه موتورهایی غیر از گوگل لازم و ضروری است.
AJAX در jQuery
یکی از امکانات پرکاربرد در کتابخانهی jQuery امکانات AJAX است. به دلیل ناهمخوانیهای سنتی در پیادهسازی این فناوری در مرورگرهای مختلف، کتابخانههای گوناگونی برای پوشش این تفاوتها ایجاد شدند، جیکوئری نیز دستورات متنوعی برای ارسال انواع درخواستهای AJAX در اختیار برنامهنویسان و طراحان سایت قرار میدهد.
ضرورت و پیش نیازهای فراگیری ایجکس (AJAX)
پیشتر اشاره کردیم تکنیک ای جکس مبتنی بر ارسال غیرهمزمان درخواست از مرورگر به سرور در پس زمینه است، منظور از غیرهمزمانی این است که با ارسال یک درخواست مبتنی بر ای جکس نیازی به بارگذاری مجدد صفحه وب نیست و کاربر می تواند تجربه بهتری از کار با برنامه داشته باشد، به طور مثال فرض کنیم بخواهیم بخش کوچکی از قسمت مدیریت سایتمان (مانند بخش تعداد آخرین نظرات جدید) را به روزرسانی کنیم، در حالت معمول برای انجام این کار راهی جز رفرش صفحه وب وجود ندارد، اما با ای جکس می توانیم در فواصل زمانی خاص درخواست هایی در پس زمینه ارسال، نتیجه را دریافت و مطابق با نیازمان به کمک جاوا اسکریپت اطلاعات بازگشتی را پردازش کنیم، کاربرد درست و بجای این شیوه می تواند لذت استفاده از برنامه های تحت وب را دوچندان کند ضمن اینکه برخی از برنامه ها ماهیتا باید مبتنی بر تکنیک غیرهمزمانی طراحی شوند، به فرض تصور وجود برنامه پشتیبانی آنلاین بدون این شیوه عملا ممکن نیست، برای فراگیری ای جکس، داشتن حداقل دانشی از جاوا اسکریپت، HTML و آشنایی مختصری با XML ضروری است، چرا که پایه اصلی دستورات ای جکس به وسیله کدهای جاوا اسکریپت شکل می گیرد و در پروژه های کاربردی تسلط بر جاوا اسکریپت می تواند تا حدود زیادی کار با ای جکس را آسانتر و حرفه ای تر کند، اما به هر صورت در حداقل شرایط نیز می توانیم با پیروی از برخی نمونه کدها و آشنایی کلی با این تکنولوژی تا حدود زیادی نیازهایمان را بر طرف کنیم.
مزایا و معایب ایجکس چیست؟
مانند هر تکنولوژی دیگر ایجکس هم دارای مزایا و معایب مخصوص به خود است.
مهمترین مزایای ایجکس
- خواندن اطلاعات از سرور بعد از لود شدن صفحه
- بروزرسانی یک صفحه بدون نیاز به بارگذاری مجدد آن
- ارسال داده به سرور در پسزمینهی سایت
مهمترین معایب ایجکس
- استفاده از درخواست xmlhttp که ممکن است توسط برخی از مرورگرها پشتیبانی نشود.
- اجرا نشدن دستورات AJAX درصورتی که جاوا اسکریپت مرورگر توسط کاربر غیرفعال شده باشد.
- دشواری بیشتر در اشکالزدایی و تست برنامههای ایجکس
نتیجه گیری
ایجکس (AJAX) یک تکنولوژی بسیار مفید و کاربردی است. اگر میخواهید بخشی از محتوای سایت شما بروز شده اما کل صفحه Refresh نشود میتوانید از Ajax استفاده کنید. یعنی به کمک این تکنیک نیازی نیست برای یک تغییر کوچک کل صفحه دوباره بارگیری شود. این کار مزایای زیادی مانند تجربه کاربری بهتر و صرفهجوبی در مصرف پهنای باند را به همراه دارد. البته برخی از معایب آن را هم باید مدنظر داشته باشید. ممکن است Ajax موتور جستجو را گمراه کرده و موتور جستجو هنگام Crawl کردن صفحات دچار مشکل شود. یا احتمال دارد بعضی از دستگاهها به خوبی از این تکنولوژی پشتیبانی نکنند.