عنوان
|
نويسنده
|
مشاهده
|
تعداد
آراء |
امتياز
|
Ajax : تحولی بزرگ در عرصه وب ( بخش دوم ) |
مديريت وب |
17336 |
360 |
3 |
با توجه به جایگاه داده در عصر حاضر و لزوم نگاه جامع به این مقوله مهم ، بر آن شدیم تا محوریت فعالیت های خود را بر روی این موضوع متمرکز نمائیم . از این رو گروه فابک با شعار فناوری اطلاعات برای کسب وکار شکل گرفت و خدمات خود را از طریق سایت www.fabak.ir به مخاطبان محترم عرضه می نماید
 |
Ajax : تحولی بزرگ در عرصه وب
Ajax : تحولی بزرگ در عرصه وب (
بخش دوم )
در
بخش اول
ضمن بررسی تاثير متقابل وب بر نرم افزار ، مروری داشتيم به وب ايستا و وب پويا و
اين كه برای انجام پردازش های مورد نياز در برنامه های وب می توان از امكانات و
فناوری های متعددی در سمت سرويس گيرنده و سرويس دهنده استفاده كرد . هدف از بيان
مطالب فوق ، پاسخ به اين سوال بود كه چرا به وجود يك فناوری ديگر نظير
Ajax نياز است ( گرچه Ajax
يك فناوری نيست و مجموعه ای از فناوری ها را شامل می شود ) .
با اين كه ايده فناورهائی نظير Ajax در گذشته نيز
وجود داشته است و پياده كنندگان برنامه های وب در زمان خود با بكارگيری برخی فناوری
ها و ترفندها توانسته بودند مشكل خود را تا حدود زيادی برطرف نمايند ولی گذشت
زمان و گسترش
باور نكردنی اينترنت ، باعث شد تا استفاده از بستر فوق
برای ارائه سرويس های online در دستور كار اكثر
سازمان ها و شركت ها در اقصی نقاط جهان قرار بگيريد . همين موضوع باعث شد كه دگر
باره جامعه بزرگ طراحان و پياده كنندگان برنامه های وب اين نياز را احساس كنند كه
به يك راه حل جامع و سيستماتيك برای برخورد با مسائل خود ( خصوصا" تعامل با كاربر )
در دنيای نوين برنامه نويسی وب نياز دارند . دنيائی كه در آن دقت و سرعت در ارائه
خدمات online با بكارگيری كمترين منابع و توليد بيشترين
بهره وری ، رمز ماندگاری يك سازمان در مدار رقابت و پيشرفت است . همين
امر باعث شد كه شركت های بزرگ توليد كننده نرم افزار و خدمات
online نيز دست به كار شوند و چيزی را خلق كنند كه ما امروزه از آن با نام
Ajax ياد می كنيم .
در اين بخش به بررسی موارد زير خواهيم پرداخت :
-
تولد
Ajax و ريشه يابی علت انتخاب اين نام
-
Ajax و فناوری های مرتبط با آن
-
اصول حاكم بر فناوری
Ajax .
-
نحوه كاركرد
Ajax در برنامه های وب
تولد
Ajax
در فوريه سال 2005 ، Jesse James Garrett از Adaptive Path مقاله ای را
با عنوان "
يك رويكرد جديد به برنامه های وب " بر روی وب سايت خود منشتر كرد .
وی در اين مقاله
ضمن اشاره به اين موضوع كه فاصله بين برنامه های وب و
desktop در حال از بين رفتن است
، به بررسی دو
نمونه از برنامه های وب جديد با نام Google Suggest و Google Maps پرداخته
بود . Garrett پس از تشريح نحوه عملكرد برنامه های فوق ، برای اولين
مرتبه از واژه Ajax
در مقاله خود استفاده كرد
.
وی در مقاله خود دنيائی را پيش بينی كرده
بود كه در
آن برنامه های وب از لحاظ قابليت دستيابی ، پاسخ گوئی و سادگی قابل مقايسه با
برنامه های desktop خواهند
شد .
Ajax چيست ؟
-
Ajax برگرفته شده از Asynchronous JavaScript XML است
و مشتمل بر مجموعه ای از فناوری ها است
، نه صرفا" يك فناوری .
-
Ajax ، اساس و پايه چيزی
است كه امروزه از آن با نام وب 2 نام برده می شود ( نسل جديد وب )
.
ايده اصلی ، ايجاد برنامه های وبی است كه دارای شكل ظاهری و
توانمندی هائی مشابه با برنامه
های desktop باشند .
-
Ajax
چيزی بيشتر از يك نگرش جديد به برنامه های وب نيست . نگرشی كه در آن صرفا"
يك حجم اندك از اطلاعات بين سرويس گيرنده و سرويس دهنده با هدف افزايش تعامل كاربر
با برنامه ، مبادله می گردد .
-
Ajax
، مشتمل بر مجموعه ای از فن آوری ها
است كه هر يك دارای جايگاه مختص به خود می باشند :
-
فن آوری های استاندارد presentation نظير XHTML
و CSS
- بهنگام سازی پويای يك صفحه مستقر شده در حافظه با استفاده از DOM ( برگرفته شده
از Document Object Model )
- مبادله و پردازش داده با استفاده از XML
(فرمت مبادله داده ) و
XSLT ( تبديل XML به
XHTML )
- بازيابی داده غيرهمزمان با استفاده از XMLHttpRequest
( كارگزار اوليه مبادله اطلاعات )
و جاوا اسكريپت
كه همه چيز را به يكديگر
مرتبط می نمايد و از آن برای برنامه نويسی Ajax engine استفاده می
گردد .
-
در دنيای
واقعی ،
از تمامی فناوری های فوق در Ajax استفاده می گردد
ولی به وجود HTML/XHTML ،
DOM و Javascript
بيش از همه نياز است چون :
از
XHTML برای نمايش
اطلاعات استفاده می گردد
.
از DOM برای تغيير بخش
هائی از يك صفحه XHTML بدون
نياز به load مجدد صفحه
استفاده می گردد.
از جاوا اسكريپت ، برای مقداردهی اوليه ارتباط بين سرويس گيرنده و سرويس دهنده و
بهنگام سازی صفحات وب به كمك DOM
استفاده می گردد .
-
يك عنصر اساسی و مهم
ديگر كه در مقاله Garrett به آن اشاره نشده است ، ضرورت
انجام پردازش های سمت سرويس
دهنده است . تمامی فناوری های اشاره شده
( در پاراگراف قبل ) ، در ارتباط مستقيم با Ajax
engine سمت سرويس گيرنده می باشند
. بدون وجود يك سرويس دهنده مطمئن و پاسخگو به منظور ارسال محتويات برای Ajax
engine ، در عمل Ajax فاقد كارآئی لازم خواهد بود
. صرفنظر از فناوری استفاده شده در سمت سرويس دهنده ( نظير PHP
و يا ASP.NET ) ، می بايست اين اطمينان حاصل گردد كه
داده با فرمت صحيح برای Ajax
engine ارسال می گردد .
-
از شی XMLHttpRequest درون جاوا اسكريپت
برای ارتباط با سرويس دهنده استفاده می گردد تا در ادامه بتوان داده برگردانده شده از سرويس دهنده (
با فرمت Xml و يا متن معمولی ) را پردازش كرد .
-
از DHTML
و CSS برای نمايش
نتايج در مرورگر استفاده می گردد .
-
هدف
از كنارهم قرار گرفتن تمامی فناوری های
اشاره شده ، اين است كه شكل ظاهری
برنامه های وب و نحوه پاسخ
گوئی آنها به خواسته كاربران
مشابه برنامه های desktop
گردد .
همانگونه كه در نام اين
فناوری مشخص است ، Ajax مشتمل بر مجموعه ای از
فناوری ها است : Asynchronous JavaScript XML
-
غيرهمزمان و يا
asynchronous بدين معنی است كه مرورگر لازم نيست منتظر بماند
تا داده
از سرويس دهنده برگردانده شود
و می تواند به محض دريافت داده آن
را پردازش نمايد . به عبارت ديگر ، انتقال داده
در پس زمينه انجام شده و مرورگر مجبور به توقف و انتظار برای تحقق
اتفاقی نخواهد بود .
رويكرد فوق نشاندهنده يكی از ويژگی های مهم و حياتی Ajax است
. در چنين مواردی، می توان داده را
پس از ارسال توسط سرويس دهنده ، پردازش
كرد . لازم نيست تمامی برنامه را معطل رسيدن
داده از سمت سرويس دهنده كرد .
در صورتی كه لازم است پردازش های سمت سرويس گيرنده
منتظر دريافت داده بمانند ، مكانيرم دريافت و پردازش داده می بايست بطور همزمان
انجام شود . در صورتی كه يك ارتباط ضعيف بين سرويس گيرنده و سرويس دهنده برقرار شده
باشد اين موضوع می تواند عملكرد و موفقيت
يك برنامه وب را با مشكل مواجه نمايد .
-
بخش جاوا اسكريپت
واژه Ajax نيز
بسيار مهم است چراكه بالفعل شدن پتانسيل های Ajax در مرورگر
توسط آن محقق می گردد .
Ajax به كمك جاوا اسكريپت با سرويس دهنده
ارتباط خود را برقرار می نمايد و در ادامه نيز داده برگردانده شده از سرويس
دهنده را پردازش
می نمايد .
-
بخش
xml واژه Ajax دارای چه
مسئوليتی است
؟ XML
به عنوان يك استاندارد
جهانی در عرصه وب مطرح است و به كمك آن
می توان از يك روش مبتنی بر
متن برای مبادله داده در عرصه اينترنت استفاده كرد .
يكی از دلايل مهم گسترش xml ، ماهيت مبتنی بر متن آن است
. با توجه به اين كه طراحی اينترنت بگونه ای انجام شده بود تا بتواند مستندات مبتنی
بر متن نظير اسناد HTML را نمايش دهد ، وجود
xml به منزله قلابی است كه می توان آن را دور اينترنت
انداخت و به صيد داده پرداخت. داده ئی كه به
همراه ساختار خود می تواند امكان پردازش را در ساير سيستم ها فراهم نمايد . به همين دليل است كه برنامه های Ajax
بگونه ای نوشته می گردند تا بتوانند بر روی داده برگردانده شده از سرويس دهنده با فرمت
xml ، عمليات مورد نظر را انجام دهند . به عبارت
ديگر ، پس از برقراری ارتباط با سرويس دهنده ، داده با فرمت xml
برگردانده خواهد شد .
xml ، صرفا" يكی از روش های برگرداندن داده است
و در صورت لزوم می توان از
فرمت هائی ديگر نظير متن معمولی نيز استفاده كرد .
-
در كنار جاوا اسكريپت و
XML ، فناوری Ajax با
فناوری های ديگری نظير DHTML و CSS نيز كار می كند .
به كمك فناورهای فوق می توان داده
موجود در يك صفحه وب را بدون نياز به load تمامی صفحه
بهنگام كرد ( صرفا"
load بخشی كه ضرورت آن احساس می شود
) . پتانسيل فوق
يكی از اهداف و ويژگی های مهم برنامه های وب مبتنی بر فناوری
Ajax محسوب می گردد .
-
بخشی از جاوا اسكريپت كه
امكان Ajax را ميسر می سازد ، شی XMLHttpRequest است .
شی فوق تقريبا" در تمامی مرورگرهای مدرن و پيشرفته از قبل تعبيه شده
است . به كمك اين شی امكان اتصال به سرويس دهنده و
مديريت داده برگردانده شده از
آن در پس زمينه فراهم می گردد .
اقتدار Ajax نه تنها وابسته به جاوا اسكريپت بلكه مديون
شی XMLHttpRequest است .
اصول
Ajax
Ajax هنوز در ابتدای راه است و بسياری از
پياده كنندگان با اين پرسش مواجه هستند كه از اين فناوری در چه زمانی و در چه نوع
برنامه هائی می توان استفاده كرد . عدم شناخت مناسب
از اين فناوری باعث می شود تا از
آن در برنامه هائی استفاده
گردد كه نه تنها قابليت و يا ويژگی جديدی را به برنامه
اضافه نمی نمايد بلكه در بسياری از موارد
عدم موفقيت يك برنامه و نارضايتی كاربران آن را به دنبال خواهد داشت .
زمانی می توان اين ادعا را داشت كه يك برنامه وب مبتنی بر Ajax
در اهداف خود موفق بوده است كه
در آن اصول زير رعايت شده باشد .
-
به حداقل رساندن ترافيك : برنامه های Ajax می بايست
حتی المقدور حجم اندكی از اطلاعات را برای سرويس دهنده ارسال و يا
از آن دريافت نمايند .
به عبارت ديگر ، با بكارگيری Ajax می
بايست حجم ترافيك بين سرويس
گيرنده و سرويس دهنده كاهش
يابد .
-
عدم
سردرگمی كاربر :
برنامه های وب مبتنی بر فناوری Ajax
مدل تعامل با كاربر مختلفی را نسبت به برنامه های وب سنتی معرفی
كرده اند . در
مقابل وب استاندارد ( كليك كن و منتظر باش ) ، برخی برنامه های
Ajax از يك رويكرد ديگر برای پياده سازی بخش
رابط كاربر خود نظير
drag-and-drop و يا double-clicking
استفاده می نمايند . صرفنظر از نوع مدل انتخاب شده برای پياه سازی تعامل با كاربر ،
مهم ارائه امكانات بخش رابط كاربر بگونه ای
است كه همواره كاربر در سريع ترين زمان
بتواند در خصوص انجام حركت بعدی خود تصميم گيری نمايد .
-
استفاده منطقی از تجارب مثبت گذشته : وقت خود را بی خودی به ابداع مدل های تعامل با كاربر جديد كه كاربران
شما با آنها آشنا نيستند ، هدر ندهيد .
استفاده از تجارب برنامه های وب سنتی و desktop می
تواند پياده كنندگان را در طراحی يك مدل مناسب جهت تعامل با كاربر كمك نمايد .
-
اجتناب از بكارگيری عناصر غيرضروری : از بكارگيری عناصر غير ضروری نظير تكرار انيميشن و
بخش هائی نظير blinking page
اجتناب كنيد. بكارگيری اين چنين عناصری
باعث می شود تا كاربران در
زمان انجام فعاليت های
مورد نظر دچار سردرگمی شوند .
-
قابليت دسترسی و رضايت كاربران : برنامه های
Ajax را با در نظر گرفتن رفتار و نوع خواسته كاربران
طراحی و پياده سازی نمائيد . برای طراحی و پياده سازی خود را در يك مكان بسته محبوس
ننمائيد. در غير اينصورت همواره اين احتمال وجود خواهد داشت كه خواسته برخی از
كاربران ناديده گرفته شود . قابليت دسترسی و رضايت كاربران يكی از نكات بسيار مهم
در موفقيت يك برنامه كامپيوتری محسوب می گردد .
-
پيشگيری از دانلود تمامی
صفحه : تمامی
ارتباط با سرويس دهنده پس از مقدار دهی اوليه دانلود صفحه ، می بايست توسط
Ajax engine مديريت گردد .
عدم مديريت صحيح بر روی فرآيند فوق می تواند بخش رابط كاربر يك برنامه وب را با
مشكل اساسی مواجه سازد ( نظير دانلود حجم اندكی از داده در يك مكان و دانلود تمامی
صفحه در بخش ديگر )
-
توجه به نياز كاربران
قبل از هر چيز : برنامه های Ajax
را قبل از هر چيز با كاربران
خيالی در ذهن طراحی نمائيد . سهولت در انجام عمليات متداول می بايست در دستور كار
قرار بگيرد . كمتر در انديشه انجام كارهای تبليغاتی و يا افكت های غيرضروری باشيد .
نقطه مشترك بين تمامی
اصول اشاره شده ، قابليت استفاده
از يك برنامه با حداكثر ظرفيت و رضايتمندی كاربران است . هدف اوليه
Ajax ، بهبود و ارتقاء بخش رابط كاربر برنامه ها با هدف
رضايتمندی بيشتر كاربران است .
نحوه كار Ajax
در برنامه های وب سنتی مرورگر مسئوليت مقداردهی اوليه درخواست
ها و پردازش آنها جهت ارسال به سرويس دهنده وب را برعهده
دارد . در مقابل ، در
Ajax يك لايه ميانی ( كه Garrett
آن را Ajax engine ناميد ) مسئوليت
مديريت ارتباط برقرار شده را برعهده می گيرد . Ajax engine در واقع يك شی جاوا
اسكريپت و يا تابع است
و زمانی كه به اطلاعاتی از سرويس دهنده نياز باشد ،
از آن استفاده خواهد شد .
در مقابل برنامه های وب سنتی كه يك لينك به يك منبع ديگر ارائه می گردد
( نظير يك صفحه وب ديگر ) ، در برنامه های وب مبتنی بر Ajax
، هر لينك باعث فراخوانی Ajax engine می گردد كه وظيفه
آن زمانبندی و انجام درخواست بطور غيرهمزمان است .
سرويس دهنده ( كه از لحاظ سنتی اسناد HTML ،
تصاوير ، CSS و جاوا اسكريپت را ارائه می نمايد )
، بگونه ای پيكربندی
می گردد تا داده مورد نياز را در اختيار
Ajax Engine قرار دهد. اين داده می تواند متن معمولی ،
XML و يا ساير فرمت های
مورد نياز داده باشد.
بديهی است در چنين مواردی ، Ajax engine می بايست قادر
به خواندن و تفسير داده باشد .
پس از دريافت پاسخ لازم از سرويس دهنده ، Ajax engine
عمليات خود را كه اغلب بررسی داده و ايجاد تغييرات لازم در بخش رابط كاربر است ،
آغاز می نمايد . با توجه به اين كه
در فرآيند فوق به اطلاعات كمتری نسبت به برنامه های وب سنتی نياز است ، بخش رابط
كاربر با سرعت بيشتری بهنگام می گردد و كاربر قادر به انجام كارهای خود با سرعت
بيشتری است .
در
شكل 1 ، عملكرد برنامه های وب سنتی نسبت به برنامه های وب
مبتنی بر Ajax نشان داده شده است .

شكل 1
: عملكرد برنامه های وب سنتی نسبت به برنامه های وب مبتنی بر
Ajax
منبع : Adaptive Path
خلاصه
فناوری های مرتبط با Ajax
در طی ساليان گذشته مطرح و از
آنها در مجموعه ای از نرم افزارها استفاده می گرديد . Jesse James Garrett در
مقاله خود تمامی فناوری های اشاره شده را در زير يك سقف و با نام
Ajax كنار هم قرار داد . با بكارگيری فناوری
Ajax در نرم افزارهای برجسته ای نظير Google Suggest در
سال 2005 ، Ajax در كانون توجه جهانی قرار گرفت .
وب 2 ، برای نيل به اهداف خود به Ajax دل بسته است و
Ajax می تواند تصويری جديد از برنامه های وب را در عرصه
اينترنت به نمايش بگذارد .
وجود برخی خصايص خاص در بخش رابط كاربر برنامه های desktop
و نحوه تعامل كاربران با اينگونه برنامه ها ، حلقه گمشده ای در برنامه های وب است.
حلقه ای كه Ajax سعی دارد خلاء آن را پر كند .
قطعا" در آينده ای نه چندان دور شاهد حضور بيشتر برنامه های وبی خواهيم بود كه
دارای شكل ظاهری و عملكردی مشابه (خصوصا" تعامل با كاربر ) با برنامه های
desktop می باشند .
شايد روزی فرا رسد كه يكی از واژه های برنامه های desktop
و برنامه های وب به نفع ديگری كنار برود و يا هر دو بر يك نام مشترك ديگر به توافق
برسند .
در بخش سوم به بررسی نمونه برنامه هائی خواهيم پرداخت كه در آنها از فناوری
Ajax استفاده می گردد .