ASP.NET Ajax 4.0

آژاکس(Asynchronous JavaScript and XML) ترکيبي از فناوريهاي مختلف ،مورد استفاده براي ساخت رابطهاي کاربري سريع و با امکانات گرافيلي بالا مي باشد. مزاياي استفاده از آژاکس در نرم افزراها عبارتند از:
سه‌شنبه، 27 ارديبهشت 1390
تخمین زمان مطالعه:
موارد بیشتر برای شما
ASP.NET Ajax 4.0

ASP.NET Ajax 4.0
ASP.NET Ajax 4.0


 






 

مقدمه
 

آژاکس(Asynchronous JavaScript and XML) ترکيبي از فناوريهاي مختلف ،مورد استفاده براي ساخت رابطهاي کاربري سريع و با امکانات گرافيلي بالا مي باشد. مزاياي استفاده از آژاکس در نرم افزراها عبارتند از:
* رندر شدن سريع تر صفحات و پشتيباني از روزآمد سازي بخشهاي از صفحه وب
*رابط هاي کاربري سريع و غني از محتوا
* کاهش مصرف منابع سرور
ASP.NET Ajax چارچوبي رايگان از مايکروسافت براي طراحي و اجراي نسل بعدي مرورگرهاي وب متقاطع با رابطهاي کاربري غني و سريع مي باشد.
قابليت آژاکس ASP.NET4.0 دراين امکان را فراهم مي سازد تا داده هاي JSONاز سرور با روشي کاملا موثر و قابل مديريت، به زبان HTMLرندر شوند. ASP.NETAjax4.0 داراي ويژگيهاي بسيار جالبي است قبل از معرفي و بررسي اين ويژگي ها، ابتدا اجازه بدهيد تا ببينيم با چه مرورگرهايي سازگار است.
اين مرورگرها عبارتند از:
* Microsoft Inrervet Explorer6,7 and 8RCl
* Mozilla Firefox2and3
* Orera9.6
شما مي توانيد يک صفحه وب را با استفاده ازکنترل ScerptManagerيا با استفاده از تگ<script> به امکانات آژاکس مجهز نماييد:

asp: ScriptManager ID=(ScriptManagerL)>
<(runat=)server
<Script>
asp: ScriptReference Name=>Miceosoft Ajax.js>
</(Path=)~/ Script/Miceosoft Ajax.js
asp: ScriptReference ScriptMode=(Inherit)Path=)~/>
</( Scripts/Miceosoft AjaxTemplates.js
asp: ScriptReference ScriptMode=(Inherit)Path=)~/>
</( Scripts/Miceosoft AjaxAdoNet.js
< Script/>
<asp: ScriptManger/>
ومثالي در استفاده از تگ< Script> براي Ajax-enebledنمودن صفحه وب:
Script type=(text/java Script)src-)../ Script/Micro->
<sofrAjax.debug.js)></ Script
Script type=(text/java Script)src-)../ Script/Micro->
<sofrAjax Templates.debug.js)></ Script
Script type=(text/java Script)src-)../>
< Scripts/Miceosoft AjaxAdoNet.debug.js)></ Script
 

با Ajax، برنامه نويسان مي تواند نرم افزارهاي کاربردي را توليد کنند که مدلPostback سنتي وب را منسوخ کرده را توليد کنند، يک اينترفيس کاربري بهبود يافته را براي کاربران فراهم نموده و به برنامه نويسان امکان دهد تا نرم افزارهاي کاربردي را توسعه دهند که بسيار کاربرپسندتر هستند.
ما در اين مقاله به بررسي موارد زير خواهيم پرداخت:
* برنامه نويسيASP.NETو نحوه هدايت آن به سمتAjax
*Ajaxچيست و يک بازنگري سطح بالا از برخي فناوريهاي اصلي آن
* مزايايAjax
* بعضي از مواردي که انجام آنها باAjax مناسب نيست

نگاهي به رويکردهاي مختلف
 

به عنوان يک برنامه نويس، احتمالا با نسلهاي متعددي از برنامه نويسي برخورد نموده ايد. برنامه نويسي از ترمينالهاي متصل به Mainframeها و ميني کامپيوترها به کامپيوترهاي شخصي و سپس برنامه نويسي کلاينت-سرور پيشرفت کرده است. برنامه نويسي کلاينت-سرور، امکان به حداقل رساندن منابعBack-endمنابع شبکه وFront-endرا بوجود مي آورد زيرا تنها داه هاي ضروردي رابين Back-end وFront-endانتقال مي دهد.
برنامه نويسي هوشمندانه کلاينت-سرور، امکان ايجاد نرم افزارهاي کاربردي را بوجود مي آورد که به کاربر پاسخگو بوده بطور موثر از منابع شبکه و Back-endاستفاده مي کنند. با معرفي شيوه برنامه نويسي وب در اواخر دهه 1990، متاسفانه ما به شيوه برنامه نويسي ترمينال باز گشتيم. دراين شيوه، هر عمليات مهمي مابين کلاينت و سرور مستلزم آن است که تمام داده ها در مسيري که تحت عنوان«Round Trip» شناخته مي شوند، انتقال يابند.
با يک Round Tripتمام داده هاي فرم از کلاينت به سرور وب فرستاده مي شوند. سرور وب داده ها را پردازش نموده و سپس آنها را به کلاينت برمي گرداند. نتيجه يک Round Trip،جابجايي مکرر انبوهي از داده ها در بين کلاينت و سرور است. براي مثال، ممکن است داده هاي فرم، اطلاعات وضعيت مشاهده و حتي تصاوير به دفعات مابين کلاينت و سرور جابجا شوند، بدون آنکه واقعا نيازي به انجام اينکار وجود داشته باشد. در سمت کلاينت تنها به يک مرورگر وب نياز است و ارتباطات در حاليکه سرور وب بعنوان يک واسطه مابين کلاينت و هرمنبع ديگري قراردارد کارمي کنند.

ASP.NET4.0
 

ASP.NET4.0مجموعه اي از فناوريهاي برنامه نويسي وب است که توسط مايکروسافت توليد شده و براي توليد سايتهاي ديناميک وب، نرم افزارهاي کاربردي وب و نرم افزارهاي کاربردي وب مبتني برXML مورد استفاده قرار مي گيرد. ASP.NET بخشي از چارچوب کاريNETاست و به برنامه نويسان امکان ميدهد تا نرم افزارهاي کاربردي را با زبانهاي متعددي نظيرVisual Basic.NET,Jscriptو#Cتوليد نمايند.

ASP.NET Ajax 4.0

شيوه طراحي
 

ASP.NET با فراهم نمودن امکان توليدصفحاتي که از کنترلهايي شبيه به GUIتشکيل شده اند، تلاش مي کند تا شيوه برنامه نويسي وب را به شيوه برنامه نويسي(GUI(graphical user interfaceشبيه نمايد. يک کنترل سرور در ASP.NET همانند کنترلهاي GUI در ساير محيطها عمل مي کنند. کليدها جعبه هاي متني، ليبل ها وDatagridها داراي خصوصياتي هستند که قابل ويراش بوده و رويدادهايي را ارائه مي کنند که مي توانند پردازش شوند. کنترل سرور ASP.NET مي دانند که چگونه محتويات خود در يک صفحهHTML را نمايش دهند، درست همانطور که کنترلهاي کاربري مبتني برGUIمي دانند که چگونه خودشان را در محيطGUI مربوطه نمايش دهند. يک مزيت اضافي ASP.NET اين است که خصوصيات و شيوه هاي کار کنترلهاي سرور وب به کنترلهاي قابل مقايسه در محيط GUI/Winformsويندوز شباهت دارند(وبعضي از موارد کاملا يکسان هستند)
مايکروسافت درطول 10سال گذشته، شيوه هاي متنوعي را براي برنامه نويسي نرم افزارهاي کاربردي وب معرفي کرده است. چرا برنامه نويسان به ASP.NET نياز دارند؟ چه مشکلاتي با ASP.NETبرطرف مي شوند که شيوه هاي برنامه نويسي قبلي آنها را حل نشده باقي گذاشته بودند؟
اولين فناوري برنامه نويسي وب مشهور مايکروسافتIDC(Inrernet Darabase Connentor)بود. شيوهIDC تنها دسترسي به بانک اطلاعاتي را فراهم مي کرد. اين شيوه دسترسي به هيچ منبع ديگري را بصورت برنامه اي فراهم نمي کرد. هيچ راهي براي ارسالemailو يا انجام ساير عمليات غير بانک اطلاعاتي بصورت برنامه نويسي شده وجود نداشت. مشکل ديگر اين بود که به نظر مي رسد اين شيوه تا حدودي با زبانهاي برنامه نويسي سنتي که اکثر که اکثر برنامه نويسان به آن عادت کرده بودند ،تفاوت دارد . در کنار مشکل مذکور ،اين واقعيت قرار گرفته بود که تجربه برنامه نويسي در داخلMicrosoft FrontPageاز جذابيت چنداني برخوردار نبود. در کنار تجربه برنامه نويسي،IDCفاقد يک تجربه Debugging قابل اشاره است. بطور کلي،IDC چيزي بيش از يک مرحله موقت براي رسيدن به يک محيط بهبود يافته نبود.
شيوه بعدي برنامه نويسي وب معرفي شده توسط مايکروسافت، ASP(Active Server Pagesبود.ASPيک محيط اسکريپت نويسي بود که به برنامه نويسان امکان مي داد تا با يک محيط شبيه به ويژوال بيسيک يا جاوا اسکريپت کار کنند. متاسفانه اين محيط با مشکلات متعددي مواجه بود:
1- رواج کد اسپاگتي:کدASPيک محيط برنامه نويسي ساختاريافته را فراهم نمي کند وغالبا با ايجاد «کداسپاگتي» پيچ و تاب دار همراه است.
کدASP بطور تحت اللفظي يک فايل با مقداري اطلاعات پيکربندي ابتدايي در بالاي هر صفحه است. هر صفحه از بالا به پايين اجرا مي شود. در حاليکه امکان استفاده از آبجکتهاي(COM(Compnent Object Modelبراي حذف مقداري از کداسپاگتي وجود دارد ،اين وضعيت پيچيدگي بيشتري را در قالب ساير ابزارهاي برنامه نويسي بوجود مي آورد.
2- فقدان جداسازي کد: کدASP به سمت اختلاط با کد نمايشي گرايش دارد.
اختلاط اين کد ومنطق نمايش مستلزم آن است که ابزارهاي مورد استفاده برنامه نويسان و طراحان بخوبي با يکديگر کار کنند، اما اين وضعيت در اغلب موارد صادق نيست. براي مثال ،اين يک مشکل کاملا شناخته شده است که ابزراهاي مختلف برنامه نويسي بصري مي توانند يک صفحهASP که بخوبي اجرا مي شود را برداشته، مقداري از کد آن را مجددا سازماندهي نموده و نهايتا صفحهASPرا به کلي غير قابل استفاده کنند.
3- عدم امکان استفاده مجدد از کد: توانايي بسيار اندکي براي استفاده مجدد از کد در داخل محيط ASP وجود دارد.
4- عدم پشتيباني ازDebugging: ديباگ نمودن يک نرم افزار کاربردي ASPمعمولا شامل استفاده ازResponse.writeاست. اين يک تفاوت آشکار با يک(IDE(Integrated Development Environmentتوسعه يافته در داخل يک محيطGUI به حساب مي آيد.
5- مشکلاتASP: COMبراساس مدلCOM(Component Object Model پايه گذاري شده و از بسياري از مشکلات مربوط بهCOMرنج مي برد. دو مشکل عمده درCOM وجود دارند:
* ارتقا آبجکتهايCOM مستلزم رونويسي يک آبجکت توسط آبجکت جديد است. اگر فراخواني شيوه برنامه نويسي تغيير کرده و يا هر رفتار جديد ديگر معرفي مي شد، اين وضعيت مي توانست مشکل ساز باشد.
* دومين مشکل عمدهCOM، اين بود که يک استاندارد باينري به حساب مي آمد. اين استاندارد باينري، مبتني بر مدل برنامه نويسي 32 بيتي بود در نتيجه آبجکتهاي COMنمي توانستند براي اجراي ذاتي در داخل محيطي که يک محيط32بيتي مبتني بر اينتل نبود، مقياس دهي شوند. درحاليکه شايد اين موضوع در اواسط دهه 1990ميلادي(يعني زمانيکه COMطراحي و ساخته شد)از اهميت چنداني برخوردار نبود اما در اوايل دهه2000و با معرفي سيستمهاي ارازنقيمت 64بيتي ،به يک گلوگاه احتمالي تبديل شد.
6- مشکلات مربوط به Interpretedبودن: ASP يک ساختار Interpreted است. هربر که يک فايل ASPبارگذاري مي شود، محيط ASP آن راتجزي کرده، کد را کامپايل نموده و سپس فايل را اجرا مي کند.
اين فرآيند در هريک از دفعاتي که يک فايل ASP فراخواني مي گردد، تکرار خواهد شد. نتيجه به هدر رفتن قدرت پردازشي بر روي سرور است.
7-حضور Statemachine: نرم افزارهاي کاربردي ASP معمولا داراي يکStatemachine (در کد نرم افزاري، Statemachine بخشي از کد است که به وروديهاي مستقيم و وروديهاي انجام شده در طول فرا خواني هاي قبلي وابسته مي باشد)در بالاي هر صفحه ASP هستند که وضعيت کاربر را پردازش نموده و سپس کد را نمايش مي دهد. با در نظر گرفن اين واقعيت که اکثر نرم افزارهاي کاربردي سمت کالينت براساس رويدادها(Events) توليد شده اند(که يک مفهوم مشابه بهStatemachine است)، اين يک شيوه ناآشناي برنامه نويسي براي برنامه نويساني به حساب مي آيد که از مهارت چنداني در ASP برخوردار نيستند.
پس از کشف اين مشکلات، مايکروسافتASP.NET را توسعه داد. ASP.NET
بطور چشمگيري شيوه برنامه نويسي وب را تسهيل مي نمايد:
* برنامه نويسان ديگر نبايد نگران وضعيت پردازش باشند. باASP.NET، عمليات در داخل يک مجموعه از رويدادها انجام مي شوند که عملکرد مشابه به Statemachine را فراهم مي کنند.
* با استفاده از مدل کدBehind/Beside، کد از بخش نمايشي جدا شده است. با جداسازي فايلهاي نمايش و کد، شانس کمتري براي تداخل ابزارهاي برنامه نويسان و طراحان وجود خواهد داشت.
* يک ابزار برنامه نويسي واحد مي تواند براي توليد نرم افزار کاربردي و منطق تجاري مورد استفاده قرار مي گيرد .در اختيار داشتن يک مجموعه برنامه نويسي مجتمع واحد، به برنامه نويسان امکان مي دهد تا با سهولت بيشتري با منطق نرم افزار کاربردي تعامل نمايند. نتيجه اين وضعيت ،استفاده مجدد از کد بيشتر و خطاهاي کمتر است.
* ASFP.NETبا Visual Studi.NETIDE از بسياري از شيوه هاي ديباگ و رديابي يک ASFP.NET در حال اجرا پشتيباني مي کند.
* از آنجاييکه ASFP.NETمبتني بر CLR(Common anguage(RuntimeوNETاست، از مشکلاتCOM رنج نمي برد. چارچوب NET به نسخه هاي متعدد مولفه ها امکان مي دهد تا بدون تعامل با يکديگر بر روي يک سيستم وجود داشته باشند.
* ASFP.NET داراي ساختار«Compiled»است. اولين باري که يک فايل بارگذاري مي شود، کامپايل گرديده و سپس پردازش مي شود. سپس ،فايل کامپايل شده در يک دايرکتوري موقتي ذخيره مي شود. فراخوانيهاي بعدي به آن فايلASFP.NET از فايلکامپايل شده پردازش خواهند شد. اجراي فايل کامپايل شده بر روي درخواستها، سريعتر از محيطInterpretedدرASP کلاسيک است.
در نهايتASFP.NET يک بهبود چشمگير در مقايسه باASP به حساب مي آيد. اين چارچوب کاري بطور گسترده اي در جوامع برنامه نويسي مورد پذيرش قرار گرفته است.

خوب، پس چه مشکلي وجود دارد؟
 

براساس آنچه که تا اينجا دربارهASFP.NET خوانده ايد، ممکن است واقعا براي شما مناسب بنظر برسد. ممکن است از خودتان بپرسيد که«را به چيزي ديگري نياز داريم؟» يا اينکه«چه مشکل ديگري وجود دارد؟» در واقعASFP.NET داراي مشکلاتي است که بايستي برطرف شوند:
*RoundTrip: رويدادهاي سرور درASFP.NET نيازمندRoundTripبه سرور هستند تا اين رويدادها را پردازش نمايد. اين Round-Tripها باعث مي شوند که تمام عناصر فرم مابين کلاينت و سرور منتقل شده و در عين حال، تصاوير و ساير فايلهاي داده از سرور به کلاينت برگردانده شوند. در حاليکه بعضي از مرورگرهاي وب تصاوير را کاشه سازي مي کنند، هنوز حجم قابل توجهي از انتقال داده ها وجود خواهد داشت.
* سرعت/شبکه انتقال داده: بخاطر عنصر فرم مخفي VIEWSTATE، مقدار داده هايي که در طول Postback منتقل مي شوند نسبتا زياد است.
هرچه داده ها و کنترلها بر روي صفحه بيشتر باشند،VIEWSTATE نيز بزرگتر خواهد بود و در نتيجه داده هاي بيشتري بايد بر روي سرور پردازش شده و به کلاينت برگردانده شوند.
* انتظار براي نتايج: هنگاميکه کاربر بر روي يک کليد يا ساير عناصر بصري که داده هايي را به سرور ارسال مي کنند کليک مي نمايد، بايد منتظر بماند تايکRuond Tripکامل به اتمام برسد. اين انتظار به اندازه اتمام پردازش بر روي سرور و سپس بازگشت تمام داده ها شامل تصاوير و Voewstateبه کلاينت طول مي کشد. در طول اين مدت ،حتي اگر کاربر تلاش کند تا کاري را با اينترفيس کاربري انجام دهد، اقدام او عملا بر روي کلاينت پردازش نخواهد شد.
* سابقه کاربر: به غير از موارديک ه نرم افزار کاربردي قادر است بطور صحيح از ويژگيSMARTNAVEGATIONدرASP.NETاستفاده کند، کاربر بصورت پيش فرض بر روي يکPostbackمجدداً به بالاي صفحه هدايت مي شود. با وجود آنکه راههايي براي اجتناب از اين مشکل وجود دارد، اما اين رفتار «پيش فرض» است.
* پردازش: تعدادRound-Trip ها به سرور، مقدار داده هايي که منتقل مي شوند و اندازه عنصر VIEWSTATE، حجمي از پردازش را بر سرور تحميل مي کند که واقعاً ضروري نيست.

بهبود تجربه کاربري
 

براساس اين مسائل، گزينه هاي مختلفي بعنوان راههاي موجود براي بهبود تجربه کاربري خودنمايي مي کنند:
* جاوا: اپلتهاي جاوا، نرم افزارهاي کاربريCross-Platformهستند. درحاليکه از برنامه نويسي جاوا بر روي کلاينت بعنوان يک مکانيزم مستقل از سکو براي مشاهده داده ها و بهبود تجربه کاربري استفاده مي شود، اما با آغوش باز در جوامع برنامه نويسي پذيرفته نشده و اصولا براي ويژگيهاي تجملاتي اينترفيس کاربري مورد استفاده قرار مي گيرد، نه براي بهبود تجربه کاربري نرم افزارهاي کاربري.
بعنوان يک تذکر جانبي، بايد به اين واقعيت اشاره کنيم که جاوا بطور گسترده اي براي تهيه نرم افزارهاي کاربردي سمت سرور مورد پذيرش قرار گرفته است.
* زبانهاي مبتني بر(XML:XUL(XML User Interface Languageو
(XAML(Extensible Application Markup Languageدو زباني هستند که مي توانند يک تجربه کاربردي بهبود يافته را فراهم نمايند.
مشکل XULاين است که تنها در مرورگرهاي خطMozolla/Firefox مورد استفاده قرار گرفته است.XAML در حال حاضر بعنوان يک محصول منتشر شده قابل دسترسي نمي باشد. وقتي اين زبان رسما منتشر شود با اين مشکل مواجه خواهد بود که يک فناوري صرفا مايکروسافتي در نظر گرفته مي شود، هرچند که اقلام تشريحي نظيرXAML.Lite بصورت Cross-Platformمعرفي شده اند.
* Flash: با وجود آنکهFlashبراي مدت زيادي مورد استفاده بوده و نسخه هايCross-Platform آن نيز وجود دارند، اين محصول تنها در قلمروي نيازهاي گرافيکي اينترفيس کاربري مورد استفاده قرار گرفته و بعنوان يک محيط کامل براي تهيه نرم افزارهاي کاربري«خط تجاري» توسط جامعه برنامه نويسي مورد پذيرش نمي باشد.
* Ajax:Ajax مجموعه اي از فناوريهاي کلاينت است که ارتباطات ناهماهنگ (Asynchronous) مابين اينترفيس کاربري و سرور وب را به همراه ادغام آسان با فناوريهاي موجود ،تامين مي نمايد.
با در نظر گرفته مباحثي که اخيرا دربارهAjaxمابين برنامه نويسان جريان دارد، بنظر مي رسد که بالاترين شانس را در بين فناوريهاي فوق الذکر براي دستيابي به پذيرش در بازار داشته باشد.

واما آژاکس
 

در اين محيط برنامه نويسي، مجموعه اي از فناوريهاي وجود دارند که مجموعا تحت عنوان آژاکس شناخته مي شوند. اگر يک برنامه نويس کهنه کار باشيد، Ajaxبيانگر مفهومي مشابه با برنامه نويسي کلاينت-سرور است که قبلا به آن اشاره کرديم. با برنامه نويسي کلاينت-سرور، ميزان انتقال داده ها بر روي يک نرم افزار کاربردي ترمينال به حداقل ممکن مي رسد، زيرا تنها داده هاي ضروري مابين کلاينت و سرور جابجا خواهند شد. با Ajaxنيز تنها داده اي ضروري مابين کلاينت و سرور وب جابجا مي شوند. اين وضعيت استفاده از شبکه و پردازش بر روي کلاينت را به حداقل مي رساند.

ASP.NET Ajax 4.0

مزاياي Ajax
 

مزايايAjaxبراي نرم افزارهاي کاربردي کلاسيک مبتني بر وب، عبارتند از
* ناهمزماني:Ajaxامکان انجام فراخوانيهاي ناهمزمان (Asynchronous)ازيک سرور وب را بوجود مي آورد. اين وضعيت به مرورگر کلاينت امکان مي دهد تا از انتظار براي رسيدن تمام داده ها، پيش از آنکه کاربر بتواند کار ديگري را انجام دهد، اجتناب نمايد.
* حداقل انتقال داده ها: بخاطر عدم انجام يکPostback کامل و همچنين عدم ارسال تمام داده هاي فرم به سرور ،استفاده از شبکه به حداقل رسيده و عمليات بطور سريعتري انجام مي شوند. درسايتها و محلهايي با مسيرهاي محدود شده براي انتقال داده ها، اين ويژگي مي تواند عملکرد شبکه را بطور چشمگيري بهبود بخشد.
* پردازش محدود بر روي سرور: با توجه به اين واقعيت که تنها داده هاي ضروري به سرور فرستاده مي شوند، سرور نيازي ندارد تا تمام عناصر فرم را پردازش کند. از آنجاييکه فقط داه هاي ضروري ارسال مي شوند، پردازش محدودي بر روي سرور انجام خواهد شد. هيچ نيازي به پردازش تمام عناصر فرم، پردازشViewstate ، برگرداندن تصاوير به کلاينت و يا برگرداندن يک صفحه کامل به کلاينت وجود نخواهد داشت.
* پاسخگويي: از آنجاييکه نرم افزارهاي کاربرديAjaxبر روي کلاينت «ناهمزمان» هستند، عملکرد آنها بسيار«پاسخگو» بنظر مي رسد.
* سابقه: با يکPostbackکامل، ممکن است کاربر سابقه جايي که در آن بوده است را از دست بدهد. ممکن است کاربر در حاليکه در پايين يک صفحه قرار دارد بر روي کليدSubmitکليک نمايد و در نتيجه به بالاي صفحه هدايت شود. باAjax، هيچPostbackکاملي وجود ندارد.
کليک بر روي کليدSubmit در يک نرم افزار کاربردي که ازAjaxاستفاده مي کند، به کاربر اجازه مي دهد تا موقعيت خود را حفظ نمايد. وضعيت کاربر نگهداري مي شود وکاربر ديگر نيازي نخواهد داشت که تمام صفحه را به پايين بلغزاند تا به موقعيتي که پيش از کليک بر رويSubmit داشته است برگردد.

تاريخچه Ajax
 

فناوريهايي کهAjax را تشکيل مي دهند عليرغم تمام جذابيتها و مزاياي خود واقعا جديد نيستند .توانايي برقراري ارتباط با سرور، از طريق يک فريم مخفي و بدون ارسال صفحه اصلي به سرور، از مدتها پيش شناخته شده است. برقراري ارتباط مابين کلاينت و سرور، از زمان معرفي تواناييInternet Explorerبراي اسکريپت نويسي کنترلهايActiveXبر روي مرورگر کلاينت و مولفه هايMSXML(که هر دو آنها به اواخردهه 1990ميلادي مربوط مي شوند)قابل دسترسي بوده است.
ما اولين استفاده رسمي از اسکريپت کلاينت وMSXMLرا در سال 2003 مشاهده کرديم. مشکل اين فناوري در آن زمان، نياز به ايجاد دستي جاوا اسکريپت مورد نياز طرف کلاينت بود در سال 2003 بطور کلي کد بسيار زيادي وجود داشت که بايد نوشته مي شد و در عين حال کد سفارشي بسيار زيادي بايد براي انجام اينکار نوشته مي شد که هنوز نوشته نشده بود. تنها در نيمه دوم سال2005 بود که کتابخانه هاي سمت کلاينت و پشتيباني سمت سرور برايASP.NETحضور محسوس خود را آغاز کرده بطور قابل ملاحظه اي مورد استفاده قرار گرفتند.
جامعه برنامه نويسي عمومي، تنها اخيرا استفاده از اين تکنيک را آغاز کرده است. انتشارSuggestوMapsاز سويGoogleچيزي بود که چشمان کاربران را واقعا بسوي فناوريهاي برنامه نويسي باز کرد. اين نرم افزارهاي کاربردي ،يک شوک را به جامعه برنامه نويسي وارد کردند.

اجزا تشکيل دهنده آژاکس
 

Ajaxيک عبارت کلي«چترمانند» است. همانطور که قبلا نيز اشاره کرديم، خودAjaxمخفف عبارتAsynchronous JavaScript Acd XML به حساب مي آيد. عبارتAjaxعملا توسطJesse James Garret ازAdapteve Path و درمقاله اي که فوريه سال2005منتشر شد، براي اولين بار مورد استفاده قرار گرفتن و به سرعت توسط جامعه برنامه نويسي پذيرفته شد.
براساس اين عبارت چتر کلي، اجازه بدهيد به اقلام خاصي کهAjaxرا تشکيل مي دهند نگاهي بيندازيم:
* XmlHttpRequest: به مرروگر امکان مي دهد که تا به يک سرور Back-end ارتباط برقرار کند. اين آبجکت به مرورگر اجازه مي دهد تا بدون نياز به يکPostback از تمام صفحه وب، با سرور ارتباط برقرار نمايد. با Internet Explorerاين قابليت توسطه مولفهMSXML ActiveX فراهم شده است . در مورد Mozilla Firefoxو ساير مرورگر هاي وب، اين قابليت با آبجتکي که به صورت تحت اللحفظ XmlHttRequesناميده مي شود تامين مي گردد. کتابخانه هاي جاوا اسکريپت سمت کلاينت، تفاوتهاي مابين محيطهاي مختلف مرورگر را پنهان مي کنند. گاهي اوقات اين ارتباطات از طريق يکFRAMEياIFRAMEمخفي برقرار مي شوند.
* جاوا اسکريپت: قابليتهايي براي برقراري ارتباط با سرورBack-end را تامين مي کند. جاوا اسکريپت بايد نسخه 1/5 يا بالاتر ازآن باشد. با وجود آنکه جاوا اسکريپت بطور اخص الزامي نمي باشد، اما از اين نقطه نظر که تنها محيط اسکريپ نويسي سمت کلاينت است که تمام مرورگرهاي وب مدرن از آن پشتيباني مي کنند، مورد نياز مي باشد. زبانهاي اسکريپت نويسي سمت کلاينت ديگري نيز وجود دارند، اما در ميان تمام مرورگرها مورد پشتيباني قرار نگرفته اند.
* پشتيبانيDHTML/DOM: مرورگر بايد از توانايي بروزرساني ديناميک عناصر فرم، پشتيباني نمايد و توانايي انجام اينکار با يک شيوه استاندارد از طريق پشتيباني از(DOM(Document Object Model فراهم مي گردد. با پشتيباني ازDOMنوشتن يک قطعه کد واحد که مرورگرهاي متعددي را هدف بگيرد براي برنامه نويسان بسيثار آسان انتقال داده باXMLياJSON: استفاده ازXMLتوانايي برقراري ارتباط با سرور وب دريک مکانيزم استاندارد را فراهم مي کند. شرايطي وجود دارند که درآنها از(JSON(JavaScript Object Notation بجايXMLمستقيم براي نشان گذاري(Notation)ارتباط استفاده مي شود.

اجراي نرم افزارهاي کاربرديAjaxمتاسفانه تمام مرورگرهاي وبي که تاکنون توليد شده اند، ازAjax پشتيباني نخواهند کرد. براي اجرايAjax يک مرورگر وب بايد داراي شرايط زير باشد:
 

* نسبتا مدرن باشد .نرم افزارهاي کاربردي سبکAjaxدر تمام نسخه هاي تمام مرورگرهاي وب قابل دسترسي نخواهند بود. درحاليکهInternet Explorer6،Firefox5،1 وOpera5،8(ونسخه هاي بالاتر از آنها)امکان پشتيباني از اين نرم افزارهاي کاربردي را فراهم مي کنند ،نسخه هاي قديمي تر آنها مي توانند در اين زمينه مشکل باشند زيرا از نسخه هاي مختلف ساير ملزومات پشتيباني مي کنند.
* پشتيباني ازDOM
* بکارگيري جاوا اسکريپت
* پشتيباني ازXML(Extensible Markup Languageو
XSL(Extenseble Style Language Transformation)
* احتمالاً فعال شدن ActiveX بر روي کلاينت. اگر از مرورگر Internet Explorer برروي ويندوز استفاده مي کنيد، اگر ActiveXفعال نشده باشد احتمالاً با مشکلاتي مواجه خواهيد شد.

کاربرد آژاکس
 

حالا که متوجه شديد يک فناوري با نامAjax وجود دارد آيا تنها کسي است که تاکنون آن را نديده ويا چيزي در موردش نشنيده ايد؟ واقعا نه.
Ajaxتنها از نيمه دوم سال 2005به بعد کار تثبيت موقعيت خود را آغاز کرده است. براساس مباحثي که در جوامع برنامه نويسي در بين همکاران جريان دارد، بسياري از برنامه نويسان بررسي آنچه کهAjax مي تواند براي نرم افزارهاي کاربردي (ونهايتا مشتريان)آنها انجام دهد را به تازگي آغاز کرده اند. بنابراين، در حال حاضر چه کساني ازAjaxبطور عمومي استفاده مي کنند؟
* Google Suggest: Google Suggestبه يک جعبه فهرست Drop-down ديناميک مجهز است که اقلام احتمالي براي جستجو را به همراه تعداد تقريبي نتايج جستجو فراهم مي کند.
* Googl Maps: توانايي مشاهده يک نقشه و بزرگنمايي قسمتهاي مختلف آن بدون نياز به يکPostbackواقعاً هيجان انگيز است. اين سرويس/ نرم افزار کاربردي با عرضه خود دنياي برنامه نويسي را با يک طوفان مواجه کرد.
* Gmail:Google Gmailيک سيستم الکترونيکي مبتني بر وب است کهGoogleآن را در دسترس کاربران قرار داده.
* Microsoft Hotmail Kahuna update:نسخه ارتقايي Hotmailکه تحت عنوانKahunaشناخته مي شود.
* Live.com:سرويسlocal.live.comاز مايکروسافت بطور فعالانه اي از چارچوبAtlasاستفاده مي کند(همانطور که تقريبا تمام سرويسLive.comاين وضعيت را دارد)
* EasySearchComponent: مولفهEasySearchComponent در ASP.NET پشتيباني از جستجوي يک سايت وب واحد مشابه با سرويسGoogle Suggestرا فراهم مي کند.
* ساير فروشندگان Component: فروشندگان Componentنظير ComponentArt,Dart و سايرين کنترلهايي را فراهم مي کنند که يک تجربه کاربري غني را بدون ضرورت يکPostback کامل تامين مي نمايد.
علاوه بر توجه طرف ثالث، توجه برنامه نويسان نيز بسيار قابل توجه است.
براي مثال ،کافي است يکنفر عبارتAjax را در عنوان يک وبلاگ قرار داده و در نتيجه ترافيک وب خود را بطور چشمگيري افزايش دهد. با در نظر گرفتن ميزان پشتيباني طرف ثالث و علاقه برنامه نويسان، فراگيرشدن استفاده ازآن تنها به زمان بستگي دارد.آژاکس يک فناوري عالي است که کمک چشمگيري را براي برطرف نمودن مشکلات معمول نرم افزارهاي کاربردي فراهم مي کند و با انبوهي از نويدهاي عمومي همراه است. اين فناوري با ارسال(تنها) داده هاي ضروري و ايجاد ترافيک شبکه کمتر درهنگام پردازش يک فرمان در حوزه هايي نظير حجم باريکه و سابقه کاربر سودمند خواهد بود. هنگاميکه يک فرمان به سرور فرستاده مي شود، کاربر به بالاي صفحه هدايت نمي شود. مشکل اين است که براي اجراي موفقيت آميز Ajax يک کاربر بايد مکانيزم انتقال و پشتيباني از جاوا اسکريپت که قبلا به آنها اشاره کرديم را در اختيار داشته باشد.
اينها مواردي هستند که هر مرورگر اينترنت مدرني از قبل داراي آنها مي باشد. بنابراين مشکل درکجاست؟ خوب، مشکل اين است که بسياري از مرورگرهاي موبايل فاقد پشتيباني از هردو مورد مذکور هستند.
با وجود محصولات فراوان Ajaxشما پشتيبانيDownlevelبسياري محدودي در اختيار خواهيد داشت(ويا اصلا موبايل پشتيباني را در اختيار نداريد)بنابراين، اگر بايد از يک سيستم موبايل پشتيباني کنيد، احتمالاً به نوشتن نسخه هاي متعددي از نرم افزار کاربردي خود محدود خواهيد شد زير احتمالاAjaxفناوري مناسبي براي دربرگيري تمام آنها نخواهد بود.
منبع:نشريه بزرگراه رايانه- ش133



 



ارسال نظر
با تشکر، نظر شما پس از بررسی و تایید در سایت قرار خواهد گرفت.
متاسفانه در برقراری ارتباط خطایی رخ داده. لطفاً دوباره تلاش کنید.
مقالات مرتبط