Ajax؛ تحولی بزرگ در عرصه وب (2)
Ajax؛ تحولی بزرگ در عرصه وب (2)
Ajax؛ تحولی بزرگ در عرصه وب (2)
در بخش اول ضمن بررسی تاثير متقابل وب بر نرم افزار ، مروری داشتيم به وب ايستا و وب پويا و اين كه برای انجام پردازش های مورد نياز در برنامه های وب می توان از امكانات و فناوری های متعددی در سمت سرويس گيرنده و سرويس دهنده استفاده كرد . هدف از بيان مطالب فوق ، پاسخ به اين سوال بود كه چرا به وجود يك فناوری ديگر نظير Ajax نياز است ( گرچه Ajax يك فناوری نيست و مجموعه ای از فناوری ها را شامل می شود ) .
با اين كه ايده فناورهائی نظير Ajax در گذشته نيز وجود داشته است و پياده كنندگان برنامه های وب در زمان خود با بكارگيری برخی فناوری ها و ترفندها توانسته بودند مشكل خود را تا حدود زيادی برطرف نمايند ولی گذشت زمان و گسترش باور نكردنی اينترنت ، باعث شد تا استفاده از بستر فوق برای ارائه سرويس های online در دستور كار اكثر سازمان ها و شركت ها در اقصی نقاط جهان قرار بگيريد . همين موضوع باعث شد كه دگر باره جامعه بزرگ طراحان و پياده كنندگان برنامه های وب اين نياز را احساس كنند كه به يك راه حل جامع و سيستماتيك برای برخورد با مسائل خود ( خصوصا" تعامل با كاربر ) در دنيای نوين برنامه نويسی وب نياز دارند . دنيائی كه در آن دقت و سرعت در ارائه خدمات online با بكارگيری كمترين منابع و توليد بيشترين بهره وری ، رمز ماندگاری يك سازمان در مدار رقابت و پيشرفت است . همين امر باعث شد كه شركت های بزرگ توليد كننده نرم افزار و خدمات online نيز دست به كار شوند و چيزی را خلق كنند كه ما امروزه از آن با نام Ajax ياد می كنيم .
در اين بخش به بررسی موارد زير خواهيم پرداخت :
وی در مقاله خود دنيائی را پيش بينی كرده بود كه در آن برنامه های وب از لحاظ قابليت دستيابی ، پاسخ گوئی و سادگی قابل مقايسه با برنامه های desktop خواهند شد .
• 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
رويكرد فوق نشاندهنده يكی از ويژگی های مهم و حياتی Ajax است . در چنين مواردی، می توان داده را پس از ارسال توسط سرويس دهنده ، پردازش كرد . لازم نيست تمامی برنامه را معطل رسيدن داده از سمت سرويس دهنده كرد .
در صورتی كه لازم است پردازش های سمت سرويس گيرنده منتظر دريافت داده بمانند ، مكانيرم دريافت و پردازش داده می بايست بطور همزمان انجام شود . در صورتی كه يك ارتباط ضعيف بين سرويس گيرنده و سرويس دهنده برقرار شده باشد اين موضوع می تواند عملكرد و موفقيت يك برنامه وب را با مشكل مواجه نمايد .
xml ، صرفا" يكی از روش های برگرداندن داده است و در صورت لزوم می توان از فرمت هائی ديگر نظير متن معمولی نيز استفاده كرد .
• در كنار جاوا اسكريپت و XML ، فناوری Ajax با فناوری های ديگری نظير DHTML و CSS نيز كار می كند . به كمك فناورهای فوق می توان داده موجود در يك صفحه وب را بدون نياز به load تمامی صفحه بهنگام كرد ( صرفا" load بخشی كه ضرورت آن احساس می شود ) . پتانسيل فوق يكی از اهداف و ويژگی های مهم برنامه های وب مبتنی بر فناوری Ajax محسوب می گردد .
• بخشی از جاوا اسكريپت كه امكان Ajax را ميسر می سازد ، شی XMLHttpRequest است . شی فوق تقريبا" در تمامی مرورگرهای مدرن و پيشرفته از قبل تعبيه شده است . به كمك اين شی امكان اتصال به سرويس دهنده و مديريت داده برگردانده شده از آن در پس زمينه فراهم می گردد .
اقتدار Ajax نه تنها وابسته به جاوا اسكريپت بلكه مديون شی XMLHttpRequest است .
زمانی می توان اين ادعا را داشت كه يك برنامه وب مبتنی بر Ajax در اهداف خود موفق بوده است كه در آن اصول زير رعايت شده باشد .
نقطه مشترك بين تمامی اصول اشاره شده ، قابليت استفاده از يك برنامه با حداكثر ظرفيت و رضايتمندی كاربران است . هدف اوليه Ajax ، بهبود و ارتقاء بخش رابط كاربر برنامه ها با هدف رضايتمندی بيشتر كاربران است .
در مقابل برنامه های وب سنتی كه يك لينك به يك منبع ديگر ارائه می گردد ( نظير يك صفحه وب ديگر ) ، در برنامه های وب مبتنی بر Ajax ، هر لينك باعث فراخوانی Ajax engine می گردد كه وظيفه آن زمانبندی و انجام درخواست بطور غيرهمزمان است .
سرويس دهنده ( كه از لحاظ سنتی اسناد HTML ، تصاوير ، CSS و جاوا اسكريپت را ارائه می نمايد ) ، بگونه ای پيكربندی می گردد تا داده مورد نياز را در اختيار Ajax Engine قرار دهد. اين داده می تواند متن معمولی ، XML و يا ساير فرمت های مورد نياز داده باشد. بديهی است در چنين مواردی ، Ajax engine می بايست قادر به خواندن و تفسير داده باشد .
پس از دريافت پاسخ لازم از سرويس دهنده ، Ajax engine عمليات خود را كه اغلب بررسی داده و ايجاد تغييرات لازم در بخش رابط كاربر است ، آغاز می نمايد . با توجه به اين كه در فرآيند فوق به اطلاعات كمتری نسبت به برنامه های وب سنتی نياز است ، بخش رابط كاربر با سرعت بيشتری بهنگام می گردد و كاربر قادر به انجام كارهای خود با سرعت بيشتری است .
در شكل 1 ، عملكرد برنامه های وب سنتی نسبت به برنامه های وب مبتنی بر Ajax نشان داده شده است .
منبع : Adaptive Path
وجود برخی خصايص خاص در بخش رابط كاربر برنامه های desktop و نحوه تعامل كاربران با اينگونه برنامه ها ، حلقه گمشده ای در برنامه های وب است. حلقه ای كه Ajax سعی دارد خلاء آن را پر كند . قطعا" در آينده ای نه چندان دور شاهد حضور بيشتر برنامه های وبی خواهيم بود كه دارای شكل ظاهری و عملكردی مشابه (خصوصا" تعامل با كاربر ) با برنامه های desktop می باشند .
شايد روزی فرا رسد كه يكی از واژه های برنامه های desktop و برنامه های وب به نفع ديگری كنار برود و يا هر دو بر يك نام مشترك ديگر به توافق برسند .
در بخش سوم به بررسی نمونه برنامه هائی خواهيم پرداخت كه در آنها از فناوری Ajax استفاده می گردد .
منبع: http://www.srco.ir
/خ
با اين كه ايده فناورهائی نظير Ajax در گذشته نيز وجود داشته است و پياده كنندگان برنامه های وب در زمان خود با بكارگيری برخی فناوری ها و ترفندها توانسته بودند مشكل خود را تا حدود زيادی برطرف نمايند ولی گذشت زمان و گسترش باور نكردنی اينترنت ، باعث شد تا استفاده از بستر فوق برای ارائه سرويس های online در دستور كار اكثر سازمان ها و شركت ها در اقصی نقاط جهان قرار بگيريد . همين موضوع باعث شد كه دگر باره جامعه بزرگ طراحان و پياده كنندگان برنامه های وب اين نياز را احساس كنند كه به يك راه حل جامع و سيستماتيك برای برخورد با مسائل خود ( خصوصا" تعامل با كاربر ) در دنيای نوين برنامه نويسی وب نياز دارند . دنيائی كه در آن دقت و سرعت در ارائه خدمات online با بكارگيری كمترين منابع و توليد بيشترين بهره وری ، رمز ماندگاری يك سازمان در مدار رقابت و پيشرفت است . همين امر باعث شد كه شركت های بزرگ توليد كننده نرم افزار و خدمات online نيز دست به كار شوند و چيزی را خلق كنند كه ما امروزه از آن با نام Ajax ياد می كنيم .
در اين بخش به بررسی موارد زير خواهيم پرداخت :
تولد Ajax
وی در مقاله خود دنيائی را پيش بينی كرده بود كه در آن برنامه های وب از لحاظ قابليت دستيابی ، پاسخ گوئی و سادگی قابل مقايسه با برنامه های desktop خواهند شد .
Ajax چيست ؟
• 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
• بخش xml واژه Ajax دارای چه مسئوليتی است ؟
xml ، صرفا" يكی از روش های برگرداندن داده است و در صورت لزوم می توان از فرمت هائی ديگر نظير متن معمولی نيز استفاده كرد .
• در كنار جاوا اسكريپت و XML ، فناوری Ajax با فناوری های ديگری نظير DHTML و CSS نيز كار می كند . به كمك فناورهای فوق می توان داده موجود در يك صفحه وب را بدون نياز به load تمامی صفحه بهنگام كرد ( صرفا" load بخشی كه ضرورت آن احساس می شود ) . پتانسيل فوق يكی از اهداف و ويژگی های مهم برنامه های وب مبتنی بر فناوری Ajax محسوب می گردد .
• بخشی از جاوا اسكريپت كه امكان Ajax را ميسر می سازد ، شی XMLHttpRequest است . شی فوق تقريبا" در تمامی مرورگرهای مدرن و پيشرفته از قبل تعبيه شده است . به كمك اين شی امكان اتصال به سرويس دهنده و مديريت داده برگردانده شده از آن در پس زمينه فراهم می گردد .
اقتدار Ajax نه تنها وابسته به جاوا اسكريپت بلكه مديون شی XMLHttpRequest است .
اصول Ajax
زمانی می توان اين ادعا را داشت كه يك برنامه وب مبتنی بر Ajax در اهداف خود موفق بوده است كه در آن اصول زير رعايت شده باشد .
• به حداقل رساندن ترافيك :
• عدم سردرگمی كاربر :
• استفاده منطقی از تجارب مثبت گذشته :
• اجتناب از بكارگيری عناصر غيرضروری :
• قابليت دسترسی و رضايت كاربران :
• پيشگيری از دانلود تمامی صفحه :
• توجه به نياز كاربران قبل از هر چيز :
نقطه مشترك بين تمامی اصول اشاره شده ، قابليت استفاده از يك برنامه با حداكثر ظرفيت و رضايتمندی كاربران است . هدف اوليه Ajax ، بهبود و ارتقاء بخش رابط كاربر برنامه ها با هدف رضايتمندی بيشتر كاربران است .
نحوه كار Ajax
در مقابل برنامه های وب سنتی كه يك لينك به يك منبع ديگر ارائه می گردد ( نظير يك صفحه وب ديگر ) ، در برنامه های وب مبتنی بر Ajax ، هر لينك باعث فراخوانی Ajax engine می گردد كه وظيفه آن زمانبندی و انجام درخواست بطور غيرهمزمان است .
سرويس دهنده ( كه از لحاظ سنتی اسناد HTML ، تصاوير ، CSS و جاوا اسكريپت را ارائه می نمايد ) ، بگونه ای پيكربندی می گردد تا داده مورد نياز را در اختيار Ajax Engine قرار دهد. اين داده می تواند متن معمولی ، XML و يا ساير فرمت های مورد نياز داده باشد. بديهی است در چنين مواردی ، Ajax engine می بايست قادر به خواندن و تفسير داده باشد .
پس از دريافت پاسخ لازم از سرويس دهنده ، Ajax engine عمليات خود را كه اغلب بررسی داده و ايجاد تغييرات لازم در بخش رابط كاربر است ، آغاز می نمايد . با توجه به اين كه در فرآيند فوق به اطلاعات كمتری نسبت به برنامه های وب سنتی نياز است ، بخش رابط كاربر با سرعت بيشتری بهنگام می گردد و كاربر قادر به انجام كارهای خود با سرعت بيشتری است .
در شكل 1 ، عملكرد برنامه های وب سنتی نسبت به برنامه های وب مبتنی بر Ajax نشان داده شده است .
منبع : Adaptive Path
خلاصه
وجود برخی خصايص خاص در بخش رابط كاربر برنامه های desktop و نحوه تعامل كاربران با اينگونه برنامه ها ، حلقه گمشده ای در برنامه های وب است. حلقه ای كه Ajax سعی دارد خلاء آن را پر كند . قطعا" در آينده ای نه چندان دور شاهد حضور بيشتر برنامه های وبی خواهيم بود كه دارای شكل ظاهری و عملكردی مشابه (خصوصا" تعامل با كاربر ) با برنامه های desktop می باشند .
شايد روزی فرا رسد كه يكی از واژه های برنامه های desktop و برنامه های وب به نفع ديگری كنار برود و يا هر دو بر يك نام مشترك ديگر به توافق برسند .
در بخش سوم به بررسی نمونه برنامه هائی خواهيم پرداخت كه در آنها از فناوری Ajax استفاده می گردد .
منبع: http://www.srco.ir
/خ
مقالات مرتبط
تازه های مقالات
ارسال نظر
در ارسال نظر شما خطایی رخ داده است
کاربر گرامی، ضمن تشکر از شما نظر شما با موفقیت ثبت گردید. و پس از تائید در فهرست نظرات نمایش داده می شود
نام :
ایمیل :
نظرات کاربران
{{Fullname}} {{Creationdate}}
{{Body}}