باید و نبایدهای استفاده از AJAX

باید و نبایدهای استفاده از AJAX
خوبها: آژاکس. بدها: آژاکس

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

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

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

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

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

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

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

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

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

برچسب ها


, , ,
Older Posts »

پشتیبانی آنلاین

ثبت فیش بانکی
ارسال درخواست پشتیبانی
پشتیبانی از طریق یاهو مسنجر


پشتیبانی تلفنی


ورود کاربر

ایمیل
کلمه عبور
مرا به خاطر بسپار

صفحات

  • درباره ما
  • راهنمای دادن سفارش
  • راهنمای پرداخت صورتحساب
  • قوانین سرویس دهی
  • نمونه کارهای ما
  • خدمات

  • Home page
  • تالار گفتگو
  • ثبت دامین
  • خبر نامه
  • خبرگزاري ها
  • دایرکتوری لینک
  • ساخت فلش
  • ساخت نرم افزار
  • سايتهاي ارئه هاست رايگان
  • سايتهاي دوستيابي
  • سايتهاي كاريابي
  • سايتهاي كليكي كسب در آمد
  • سايتهاي موزيك و موسيقي
  • سايتهاي نيازمنديها و تبليغات
  • سایتهای مدیریت محتوايي ديناميك
  • سایتهای معمولی استاتيك
  • سرویس دهنده ایمیل
  • سرویس دهنده وبلاگ
  • شمارنده بازديدكنندگان كنتور سايت
  • فروش هاست لینوکس
  • فروشگاه اینترنتی
  • مركز آپلود و دانلود
  • مقالات آموزشی
  • موتور جستجو
  • نظرسنجي
  • وبلاگ شخصي
  • چت روم
  • گالري تصاوير و فايل
  • شماره حساب

    آخرین مطالب

  • جلوگیری از قطع شدن مداوم اتصال اینترنت(DC)
  • برای غلبه بر سرعت کند جی‌میل چه کنیم؟
  • باید و نبایدهای استفاده از AJAX
  • ایجاد حاشیه در word با فونت
  • بیایم AJAX یاد بگیریم…..
  • کاملترین آموزش فعال کردن Wild Card DNS در Kloxo
  • ۱۲+۱ ترفند و نکته در «گوگل‎پلاس»
  • ۸ روش سریع بهبود رنک (امتیاز) در الکسا !!
  • آشنایى با Personalize در ویندوز۷
  • راهنمای جامع خرید لوازم جانبی لپ تاپ
  • آرشیو مطالب

  • August 2011
  • January 2011
  • February 2010
  • January 2010
  • بر چسب ها

    اصول طراحی وب سایت ساخت جی میل ساخت سایت آپلود و دانلود ساخت سایت ایستگاه ساخت سایت بلاگفا ساخت سایت بلاگناز ساخت سایت تمام فلش ساخت سایت خبری ساخت سایت دوستیابی ساخت سایت نیازمندیها ساخت سایت پرشین بلاگ ساخت سایت کلوب ساخت سایت یاهو میل ساخت سرویس دهنده وبلاگ ساخت فروشگاه اینترنتی ساخت نرم افزار ساخت نرم افزار درسی ساخت نرم افزار مالتی مدیا ساخت نرم افزار چند رسانه ای ساخت وبلاگ ساخت چت اسدی ساخت چتروم ساخت چت روم ساخت چت روم ایرانی ساخت چت روم یاهو فارسی سایت فلش سایت کاریابی سیستم تبادل لینک طراحی طراحی ارزان وب سایت طراحی رایگان وب سایت طراحی وب طراحی وب اسدی طراحی وب اسدی وب طراحی وب رایگان طراحی وبسایت طراحی وب سایت فروشگاه آنلاین فضای آپلود رایگان وبلاگ وبلاگ شخصی چت روم اسدی کسب در آمد اینترنتی کسب در آمد درصدی کسب در آمد کلیکی

    آمار بازدیدکنندگان