PDA

نسخه کامل مشاهده نسخه کامل : همه چيز درباره Ajax



'POP'
07-09-2006, 16:19
اشاره

اگر برنامه نويس وب هستيد، لابد خبر داريد كه اين روزها همه درباره Ajax صحبت مي‌كنند. بعضي معتقدند ‌Ajax يكي از اركان فني موج جديدي است كه به Web 2.0 معروف شده است و انجمن‌ها و تريبون‌هاي آنلاين مملو از مقالات و اظهارنظرهاي مربوط بهAjax است.



Ajax چيست؟

واژه Ajax با تلفظ <اي‌جكس> يا <اي‌ژاكس> سرنام عبارت Asynchronous JavaScript and XML و به معني <تركيب نامتقارن جاوا اسكريپت و>XML است. ماهيت صفحات وب و پروتكل HTTP به گونه‌اي است كه به طور معمول وقتي درحال وب‌گردي هستيم، به ازاي هر كنش و واكنش ميان ما و سايتي كه در حال كار با آن هستيم، كل يك صفحه وب از نو بارگذاري و تازه‌سازي (refresh) مي‌شود.

اي‌جكس فناوري جديدي است كه تغيير محسوسي را در اين سناريو به وجود مي‌آورد؛ به اين ترتيب كه به جاي بارگذاري مجدد كل صفحه، فقط قسمتي تغيير مي‌كند كه قرار است اطلاعات جديد را به نمايش درآورد و كليه عمليات ارسال اطلاعات و دريافت نتايج در پشت صحنه انجام مي‌شود. در نتيجه هيچ‌گاه صفحه سفيد و خالي وب در فواصل كنش و واكنش‌هاي هنگام كار با مرورگر ديده نمي‌شود و احساسي مشابه تجربه كار با يك نرم‌افزار دسكتاپ به كاربر دست مي‌دهد.

جادوي اي‌جاكس چيزي نيست جز يك فكر بكر و آن هم تركيب كردن جاوا اسكريپت و XML در قالب يك موجود ‌نرم‌افزاري جديد.

اصطلاح ‌Ajax را اولين بار كارشناسي از شركت Adaptive Path به نام جسي جيمزگرت در مقاله‌اي با عنوان <اي‌جكس؛ رهيافت جديدي در برنامه‌هاي تحت وب ([ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ])> مطرح كرد و خيلي سريع مورد استقبال گسترده برنامه نويسان وب در سراسر جهان قرارگرفت. اعتقاد عمومي اين است كه تاريخچه به‌كارگيري تكنيك مذكور به پيدايش نرم‌افزار Outlook WebAccess و استفاده از فرمان XML[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ] كه مايكروسافت ابداع كرده و در نرم‌افزار اينترنت اكسپلور به‌كار رفته است، برمي‌گردد. اما امروزه اغلب مرورگرهاي مهم و شناخته‌شده (از جمله فايرفاكس) از آن پشتيباني مي‌كنند و ديگر يك فناوري محدود به اينترنت اكسپلورر نيست.



چرا Ajax اين قدر اهميت‌دارد؟

فناوري اي‌جكس جديد است و شگفت‌انگيز به‌نظر مي‌رسد. ولي در حقيقت كل اين شعبده بر اساس فناوري‌هايي بنا شده است كه هم‌اكنون موجودند: جاوا اسكريپت و XML. هر دوي اين فناوري‌ها تا حد زيادي باز هستند و منحصر به شركت خاصي نيستند. به همين دليل اين روزها تمام محافل دنياي برنامه نويسي مملو از مقالات و تحليل‌هايي درباره Ajax است. به عنوان نمونه مي‌توانيد صفحه نخست سايت موسوم به <كانال شبكه برنامه نويسان سان ([ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ])> را بازكنيد.

بيشتر اين صفحه (در زمان نگارش اين يادداشت) به مقالات و مطالب متنوعي درباره Ajax اختصاص يافته است. مجلات برنامه‌نويسي نيز مقالات متعددي در اين زمينه منتشر كرده‌اند و سايت‌هاي معروفي مانند
O' Reilly و xml.com نيز در اين باره مطلب دارند.

بنابراين ظرفيت بالايي براي تبديل اي‌جكس به يك استاندارد جهاني وجود دارد. از اين رو قرار است در تاريخ سيزدهم مارس سمينار مهمي در زمينه Ajax برگزار شود. اگر همين الان به سايت ajaxseminar.com مراجعه كنيد، متوجه مي‌شويد كه علاوه بر طراح اين تكنيك، چندين برنامه‌نويس شاخص از شركت‌هاي بزرگي همچون ياهو در آن شركت خواهند داشت.

اين فناوري از يك جنبه ديگر نيز اهميت دارد. به‌دليل عدم نياز به بارگذاري مجدد كل يك صفحه وب، مقدار داده‌هايي كه لازم است براي تكميل يك Interaction ميان كاربر و سايت مبادله شود، به شدت كاهش مي‌يابد و اين به معني افزايش محسوس سرعت نرم‌افزارهاي تحت وب، سهولت به‌كارگيري اينترفيس‌هاي مبتني بر اي‌جكس و كاربرپسندترشدن آن‌ها مي‌شود. به همين دليل اين روزها اكثر پورتال‌هاي بزرگ (مانند ياهو) مشغول طراحي اينترفيس‌هاي مبتني بر Ajax هستند.

با اين همه مزاياي اي‌جكس‌ به همين‌ موارد ختم نمي‌شود. تصور كنيد وقتي در طول شبانه روز ميلياردها بار فرآيند بارگذاري مجدد صفحات وب تعاملي در شبكه اينترنت تكرار مي‌شود، استفاده از اي‌جكس چگونه موجب آزاد شدن پهناي‌باند اينترنت و در نتيجه ميلياردها دلار صرفه‌جويي اقتصادي در اين زمينه مي‌شود و اين به نوبه خود انقلابي در عرصه وب و فضاي سايبر به شمار مي‌رود. اين تحول در شرايطي اتفاق مي‌افتد كه همزمان فناوري‌هاي اينترنت پرسرعت همچون ADSL به شدت در حال رشد هستند.

حال تصور كنيد اگر فناوري اي‌جكس در مقياس گسترده‌اي مورد استفاده نرم‌افزارهاي تحت وب قرارگيرد. آنگاه افزايش سرعت كار با اينترنت چند برابر خواهد شد. چنين تحولي مي‌تواند اينترنت را به كامپيوتر دوم كاربران تبديل كند. به گونه‌اي كه براي آن‌ها اجراي يك نرم‌افزار از روي وب تفاوت محسوسي با اجراي آن از روي كامپيوتر دسكتاپ نداشته باشد. در اين صورت ممكن است واقعا بخش مهمي از توان پردازشي نرم‌افزارها، چه از نوع دسكتاپ و چه از نوع تحت وب به سيستم‌هاي موسوم به Web Service واگذار شود. از اين رو كساني كه مبتكر و مشوق ايده وب سرويس بوده‌اند، اين روزها انگيزه تازه‌اي براي سرعت بخشيدن به اين فناوري پيدا كرده‌اند و تلاش مي‌كنند دو فناوري اي‌جكس و وب سرويس‌ را به‌يكديگر پيوند دهند و راهكارهاي تازه‌اي بيافرينند.



كدام سايت‌ها از اي‌جكس استفاده كرده‌اند؟

دنياي برنامه‌نويسي وب هنوز درگير هيجانات مربوط به آشنايي با اين پديده است و در حال بررسي مشكلات تكنيكي و هضم و جذب آن در بافت برنامه‌هاي تحت وب مي‌باشد. به همين دليل ميزان استفاده عملي از آن چندان گسترده نيست. اما چون كارايي اي‌جكس ديگر براي همه ثابت شده است، حركت‌هاي بزرگي در سراسر اينترنت به سمت استفاده از اين فناوري در جريان است. از جمله اينترفيس نسخه دوم Yahoo Mail كه به نسخه بتا معروف است و فعلا در دسترس كاربران سرويس غير رايگان ياهو قراردارد، از همين فناوري استفاده مي‌كند كه به زودي اينترفيس جديد در دسترس عموم قرار مي‌گيرد. سرويس Gmail و Google Map نيز از اين فناوري استفاده مي‌كنند.


منابع اطلاعاتي سودمند درباره Ajax

- راهنماي Ajax براي مبتديان ([ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ])
- چرا اکنون Ajax مهم است؟ ([ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ])
- Ajax‌ به نرم‌افزار‌هاي تحت وب حال و هواي تازه‌اي مي‌دهد ([ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ])
- راهنماي موزيلا براي شروع کار با Ajax ([ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ])
- چگونه يک Ajax در ASP.NET بسازيم؟ ([ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ])
- روش استفاده از Ajax ([ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ])
- پورتال اي‌جکس کاران ([ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ])
- معرفي انواع نرم‌افزارها و پياده‌سازي‌هاي Ajax ([ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ])
- تشکل آنلاين اي‌جکسي‌ها ([ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ])
- اصول و قواعد طراحي با Ajax ([ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ])
- پادکست يکي از علاقه‌مندان Ajax ([ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ])
- مجله Ajax ([ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ])
;)
shabakeh-mag.com

'POP'
08-09-2006, 12:06
اشاره

واژه Ajax سرنام عبارت Asynchronous JavaScript and XML و به معني <جاوا اسكريپت و XML آسنكرون يا نامتقارن> است. اي‌جكس فناوري جديدي است كه به كمك آن مي‌توان اينترفيس يك برنامه تحت وب را طوري ساخت كه وقتي كاربر روي دكمه يا لينكي كليك مي‌كند، كليه عمليات ارسال اطلاعات و دريافت نتايج در پشت صحنه انجام ‌شود و فقط آن قسمت از اينترفيس كه قرار است اطلاعات جديد را به نمايش درآورد تغيير ‌كند بدون اينكه تمام صفحه از نو بارگذاري شود. در اين مقاله مي‌خواهيم اين فناوري نوين و تحول آفرين را از جنبه‌هاي مختلف مورد بررسي قرار دهيم و با مباني فني آن آشنا شويم.


[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]



كمربندها را ببنديد

آيا از دنياي كلاسيك وب خسته شده‌ايد؟ آيا مايليد با چهره جديد وب آشنا شويد؟ آيا مي‌خواهيد با جديدترين فناوري دنياي برنامه‌نويسي وب آشنا شويد؟ براي پرواز آماده باشيد! مقصد ما يكي از استان‌هاي كشور جديد التاسيس Web 2.0 است. مي‌خواهيم با هم به دنياي هيجان انگيز Ajax سفر كنيم.

در سرزمين اي‌جكس چهره سايت‌هاي وب مانند نرم‌افزارهاي روميزي به نظر مي‌رسند. اكنون وب خانه دوم اطلاعات ديجيتالي شما است. حالا كه با داشتن يك خط اينترنت پرسرعت مي‌توانيد در تمام طول شبانه روز به اينترنت متصل باشيد، وقت آن فرارسيده كه نرم‌افزارهاي تحت وب نيز متحول شوند و كاركرد و قابليتي مانند نرم‌افزارهاي روميزي داشته باشند. به اين ترتيب فاصله و تفاوت ميان نرم‌افزارهاي دسكتاپ و نرم‌افزارهاي آنلاين ناپديد مي‌شود. ديگر لازم نيست وقتي روي دكمه submit كليك مي‌كنيد منتظر بارگذاري مجدد صفحه وب بمانيد. همه‌چيز فورا و به سرعت اتفاق مي‌‌افتد.

تصور كنيد به صورت آنلاين در حال خواندن نامه‌هاي الكترونيكي خود در يكي از سايت‌هاي ياهو يا جي‌ميل هستيد. فورا يادتان مي‌افتد كه بايد به كسي نامه‌اي بفرستيد. لازم نيست صفحه‌اي كه در حال مطالعه آن هستيد را ترك كنيد و يا با استفاده از ترفندهايي مانند رايت كليك و فرمان Open in New window يك پنجره جديد بازكنيد و منتظر بارگذاري مجدد صفحه شويد. شما فقط مي‌خواهيد يك پنجره جديد باز كنيد كه داخلش نامه خود را تايپ كنيد.

چه نيازي به بارگذاري مجدد آن‌همه اطلاعات جزئي و جنبي (مانند لوگوي سايت، نام آيدي شما و ...) است كه در اطراف اطلاعات اصلي به نمايش درآمده‌اند؟ اي‌جكس همين كار را براي شما مي‌كند. وقتي كه نامه خود را ارسال كرديد نيز فقط همان پنجره بسته مي‌شود و چند بايت براي سايت مقصد ارسال مي‌شود و اينترفيس صندوق پستي نامه‌هاي شما بدون اين‌كه تكان بخورد و يا دوباره به نمايش درآيد همچنان پيش چشم شما و منتظر فرمان بعدي است. در دنياي اي‌جكس دكمه‌هاي Back و Forward مرورگر معني و كاربرد خود را تقريبا از دست مي‌دهند.

همه دكمه‌هاي مورد نياز داخل اينترفيس سايت موجود است. برخلاف جهان Web 1.0، در دنياي اي‌جكس گشت و گذار در وب لزوما خطي نيست. اگر مي‌خواهيد از يك فروشگاه الكترونيكي خريد كنيد، مي‌توانيد محصول مورد نظرتان را به روش drag&drop داخل سبد بيندازيد و با فشردن دكمه نهايي، خريد خود را ثبت كنيد. پيغام ثبت موفقيت آميز سفارش براي شما نمايش داده مي‌شود و كار تمام است. لازم نيست از صفحه الف به صفحه ب و سپس از آنجا به صفحه ج برويد.


اي‌جكس چيست؟

اين واژه را اولين بار جسي جيمز گرت (Jesse James Garrett)، برنامه‌نويسي از شركت Adaptive Path در مقاله‌اي با عنوان <اي‌جكس: رهيافت جديدي در برنامه‌هاي تحت وب> به‌كار برد. اي‌جكس سرنام عبارت Asynchronous JavaScript and XML و به معني تركيب نامتقارن جاوا اسكپريپت و ‌XML است.

چرا نامتقارن؟ چون تركيب اين دو فناوري به شما كمك مي‌كند قسمتي از يك صفحه وب را بروز كنيد بدون اينكه لازم باشد <همزمان يا متقارن> با اين عمل، كل آن صفحه از نو بارگذاري شود. اين عمليات توسط شيء و فرماني به نام XML[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ] انجام مي‌شود كه سال‌ها پيش، هنگام معرفي نسخه 4 مرورگر اينترنت اكسپلورر وارد اين نرم‌افزار شده و به دليل قابليت‌هاي جالبي كه دارد، اين روزها تمام مرورگرهاي معروف و قدرتمند وب مانند فايرفاكس و اپرا از آن پشتيباني مي‌كنند. به كمك اين شي‌ء مي‌توانيد برنامه‌هايي به زبان جاوا اسكريپت بنويسيد كه در پشت صحنه يك صفحه وب اطلاعاتي را به سرور بفرستند و داده‌هايي را دريافت كنند.

اي‌جكس اساسا رهاوردي از دنياي جاوا است و بار ديگر فناوري جاوا و زبان اسكريپت‌نويسي وابسته به آن را در كانون توجه برنامه‌نويسان قرار داده است. اما خبر خوب اينست كه چون همه پلتفرم‌هاي برنامه‌نويسي وب از قبيلPHP ،ASP.NET و JSP از جاوا اسكريپت و ‌XML پشتيباني مي‌كنند، فناوري اي‌جكس در همه اين پلاتفرم‌ها پياده‌سازي شده و حتي جالب است بدانيد كه تعداد ماژول‌هاي اي‌جكس نوشته شده براي دات نت و ‌PHP بيشتر از انواع جاوايي آن است.

مايكروسافت كه سال‌ها پيش از شيء XML[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ] در نرم‌افزار Outlook Web Access استفاده كرد و جزو اولين ترويج‌دهندگان اين تكنيك به شمار مي‌رود اخيرا نرم‌افزاري به نام Atlas معرفي كرده كه مخصوص برنامه‌نويسي مبتني بر اي‌جكس است. اما چون اي‌جكس بر اساس جاوا كار مي‌كند بديهي است كه جنبش اپن سورس و خيل عظيم برنامه‌نويسان جاوا نيز بيكار نمانده‌ و مي‌كوشند تا دير نشده Ajax را به قلب دنياي نرم‌افزارهاي آزاد بياورند و از انحصاري شدن آن جلوگيري كنند تا اين فناوري به استاندارد جديد وب تبديل شود. به نظر مي‌رسد كه آنها موفق بوده‌اند زيرا حتي پياده‌سازي‌هاي دات نتي اي‌جكس نيز اغلب به صورت اپن سورس است.


مكانيزم Ajax

جسي جيمز گرت در مقاله معروف خود شيوه عمل اي‌جكس را چنين توضيح مي‌دهد: هر عمل از سوي كاربر كه به طور معمول موجب توليد يك تقاضاي HTTP شود به جاي ارسال مستقيم به وب، موجب فراخواني يك فرمان جاوا اسكريپتي و هدايت آن به موتور اي‌جكس مي‌شود. هر نوع پاسخي به كاربر از سوي سرور (مانند كنترل صحت داده‌هاي وارد شده در يك فرم ورود اطلاعات، ويرايش اطلاعات در حافظه و حتي برخي از انواع هدايت كاربر در سايت) نيازي به ارسال يك صفحه جديد به سمت كاربر ندارد و تنها همان قسمتي كه بايد تغيير كند بروز مي‌شود.

به طور سنتي وقتي كاربر فرمي را پرمي‌كند و به سايت ارسال مي‌كند، وب سرور با بارگذاري مجدد يا تازه‌سازي صفحه (refresh) و نمايش يك پيغام و يا نتيجه پردازش اطلاعات، به او پاسخ مي‌دهد و به همين دليل هم وقت سرور براي ارسال كل محتواي آن صفحه گرفته مي‌شود و هم كاربر بايد براي دريافت كامل آن صفحه منتظر بماند؛ كه نتيجه آن كاهش بازده سرور، مصرف پهناي باند و تلف شدن وقت و هزينه است. اما به‌كارگيري تكنيك اي‌جكس اين مشكلات را به طرز قابل‌ملاحظه‌اي كاهش مي‌دهد.

[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]


گرت مي‌نويسد: اگر موتور اي‌جكس براي پاسخ دادن به كاربر نيازمند گرفتن اطلاعاتي از سمت سرور است، اگر قرار است داده‌ها براي پردازش به سرور ارسال شوند، اگر لازم است كدهاي اضافي براي نمايش تغييرات اينترفيس بارگذاري شوند، اگر نياز به بازيابي و بيرون كشيدن اطلاعات از بانك اطلاعاتي باشد، همه اين كارها به‌طور آسنكرون و با استفاده از XML، بدون اينكه وقفه‌اي در تماس ميان كاربر و اينترفيس نرم‌افزار به‌وجود آيد توسط موتور اي‌جكس انجام خواهد شد.


[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]
شكل1- كليك كنيد ([ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ])


[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]
شكل2-كليك كنيد ([ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ])


شكل‌هاي 1 و 2 تصاويري هستند كه گرت در مقاله خود استفاده كرده است. شكل 1 مقايسه‌اي است كه نشان مي‌دهد كه برنامه‌هاي تحت وب سنتي چگونه كنش‌هاي كاربر را مديريت مي‌كنند و اي‌جكس چگونه همين عمليات را كنترل مي‌كند.

شكل 2 مقايسه ديگري است كه نشان مي‌دهد اگر تعامل كاربر با يك سايت را در محور زمان ترسيم كنيم، چه تفاوتي ميان فرآيند ارسال و دريافت داده‌ها در نرم‌افزارهاي سنتي و نرم‌افزارهاي مبتني بر فناوري اي‌جكس وجود دارد.

اگر به نمودار شكل 2 دقت كنيد متوجه مي‌شويد كه هنگامي كه اينترفيس يك برنامه وب از اي‌جكس استفاده مي‌كند، تماس ميان كاربر و اينترفيس هرگز قطع نمي‌شود. او همواره نرم‌افزار را در دسترس و پيش روي خود مي‌بيند و موتور اي‌جكس در پشت صحنه عمليات ارسال و دريافت داده‌ها را مديريت مي‌كند.


مزايا و معايب Ajax

طي سال‌هاي اخير صنعت نرم‌افزار در عرصه وب به سوي توليد سيستم‌هايي حركت كرده‌است كه هرچه بيشتر مستقل از نوع سيستم‌عامل و مرورگري باشد كه كاربر استفاده مي‌كند.

نگاهي به سير تحولات مربوط به زبان‌هاي برنامه‌نويسي وب مانند PHP و ASP از يك‌سو و كاهش اقبال برنامه‌نويسان به فناوري‌هايي همچون ActiveX و Java Applet در سمت كلاينت از سوي ديگر، مويد اين نكته است.


در واقع يكي از دلايل مهم توجه دنياي نرم‌افزار به فناوري اي‌جكس همين است. اين دستاورد برخلاف فناوري‌هايي مانند Macromedia Flash نيازمند نصب هيچ نرم‌افزار الحاقي و اضافي روي مرورگر نيست و همين حالا بستر لازم براي پياده‌سازي اي‌جكس روي ميليون‌ها سايت و مرورگر وب وجود دارد. در اين ميان، اتكاي اي‌جكس بر فناوري XMLاز اهميت ويژه‌اي برخوردار است.


زيرا XML ماهيتا يك فناوري باز است كه انعطاف‌پذيري زيادي دارد و هم‌اكنون در مقياس گسترده‌اي در نرم‌افزارهاي تحت وب، از سيستم‌هاي تجارت‌الكترونيك گرفته تا نرم‌افزارهاي مديريت محتواي سايت‌هاي وب و فناوري‌هايي همچون وب‌سرويس، ‌RSS و حتي پادكستينگ مورد استفاده قرار مي‌گيرد.

ظهور اي‌جكس نشان مي‌دهد كه فناوري XML هنوز قابليت‌هاي كشف‌نشده‌‌اي دارد كه همچنان بكر مانده‌اند و مي‌توانند منشا تحولات بزرگ در سيستم‌هاي اطلاعاتي و ارتباطي باشند.



طعم كد Ajax چگونه است؟

ورود به مباحث كد‌نويسي اي‌جكس مقوله پيچيده و مفصلي است كه در اين مقاله نمي‌گنجد، ولي خالي از لطف نيست كه كمي با شكل و قيافه كدهاي اي‌جكس آشنا شويد. كد زير نمونه‌اي از اعلان شي ءXML[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ] را نشان مي‌دهد:

[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]


كد 2 نمونه‌اي از اعلان شي‌ء ‌XML[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ] را در مرورگرهاي مايكروسافتي نشان مي‌دهد:

[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]


كد 3 نمونه‌اي از كد‌نويسي جاوا اسكريپت را نشان مي‌دهد. در اي‌جكس به وفور از متدولوژي DOM در جاوا اسكريپت و DHTML استفاده مي‌كنيم:

[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]


كد 4 نيز نمونه‌‌اي از روش ارسال يك تقاضا به وسيله Ajax را نشان مي‌دهد:

[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]


اين تقاضا مي‌تواند مثلا از قسمتي از يك صفحه وب به صورت كد 5 باشد:

[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]


نهايتا پاسخ دريافت شده از سمت سرور را نيز مي‌توان به وسيله كدي شبيه به كد 6 مورد استفاده قرار داد:

[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]


در همين ارتباط، رويكرد اي‌جكس به سمت فناوري وب‌سرويس قابل توجه است. از آنجا كه ‌Ajax تا حد زيادي به معماري XML[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ] وابسته است، اين قابليت را دارد كه فرامين ارسال و دريافت اطلاعات را نه فقط از طريق سايت اصلي نمايش‌ دهنده يك صفحه وب، بلكه از طريق سايت‌هاي ديگري كه احتمالا اطلاعات خود را بر بستر وب سرويس و ‌XML قرار داده‌اند نيز دريافت كند. بنابراين اي‌جكس بالقوه يك فناوري سازگار با وب سرويس نيز هستد.
مزيت مهم ديگر Ajax بهره‌گيري آن از استاندارد CSS است.

استانداردي كه به تنهايي منشا تحولات ديگري در زمينه اينترفيس نرم‌افزارهاي وب است و در آينده بسيار نزديك به وجه غالب صفحه‌آرايي و اينترفيس سايت‌هاي وب تبديل خواهد شد. توجه اي‌جكس به CSS شان مي‌دهد كه اين فناوري همزمان با به‌كارگيري جاوا اسكريپت و ‌XML براي مديريت داده‌ها، از استاندارد پيشرفته‌اي براي اينترفيس وب استفاده مي‌كند و مي‌توان حقيقتا آن را يك فناوري مرتبط با اينترفيس ( و نه فقط تعامل ميان كلاينت و سرور) تلقي كرد.

با اين وجود، اي‌جكس معايبي نيز دارد و اين معايب موضوع بحث بسياري در محافل برنامه‌نويسي روي اينترنت است. يكي از مسائلي كه به عنوان ايراد مطرح شده، دشواري تغيير عادت كاربران در استفاده از كليدهاي Back وForward و Refresh در مرورگرهاي وب است. يكي از مشكلات برنامه‌نويسان وب همواره اين است كه يا بايد كاربر را عادت دهند كه هرچه كمتر از اين دكمه‌ها استفاده كند و يا نرم‌افزار خود را طوري بنويسند كه اگر كاربر سهوا يا عمدا از اين دكمه‌ها استفاده كرد، نرم‌افزار دچار اشتباه و خطا در تفسير عمل كاربر نشود.

به عنوان مثال هنوز بسياري از سايت‌هاي تجارت الكترونيكي كه به كار فروش محصولات مشغولند هنگام طي شدن مراحل نهايي خريد آنلاين به كاربر هشدار مي‌دهند كه حين پردازش يك سفارش (يعني درست در لحظه‌اي كه فرمان نهايي از سوي كاربر ارسال شده است و هنوز صفحه نمايش پيغام ثبت موفقيت‌آميز سفارش يا عدم ثبت آن براي وي نمايش داده نشده) از فشردن كليد Refresh جدا پرهيز كنند وگرنه ممكن است از كارت اعتبار آنها دوبار پول كسر شود. همچنين استفاده از دكمه‌هاي Back و Forward در عملياتي كه به آساني برگشت‌پذير نيستند ممكن است باعث گيج شدن كاربر است.

مثلا اگر نامه‌هاي داخل صندوق پستي خود را پاك كنيد، استفاده از دكمه Back هرگز اين عمل را Undo نمي‌كند. همچنين اگر يك قلم كالا به سبد خريد آنلاين خود اضافه كنيد، فشردن دكمه‌Back ممكن است در ظاهر چنين نشان دهد كه آن قلم كالا مجددا از سبد برداشته شده اما در سمت سرور همچنان در سبد خريد كاربر باشد. از آنجا كه فناوري اي‌جكس عمل ‌Navigation يا راهبري در يك سايت را به روندي غير‌خطي تبديل مي‌كند، تمام اين مشكلات به شكل حادتري ممكن است بروز كند.

در واقع با حضور Ajax، كاركرد سيستم History مرورگر به مساله‌اي بغرنج تبديل مي‌شود. زيرا برنامه‌نويس يا بايد با گنجاندن دكمه‌ها و فرامين اضافي، مكانيزم ‌Undo را بازسازي كند و يا موتور اي‌جكس را طوري بنويسد كه فشردن دكمه ‌Back خود به خود موجب احظار فرمان Undo شود.

در هر دو صورت كار برنامه‌نويس آسان نخواهد بود. البته در اين زمينه ترفندها و تكنيك‌هايي هم ابداع شده است. از جمله، استفاده از تگ ‌IFRAME مخفي در اينترفيس صفحه كه موتور اي‌جكس بتواند در صورت فشرده شدن دكمهBack از سوي كاربر، نسخه‌هاي پيشين نمايش داده شده از اينترفيس را از انباره ‌History مرورگر بيرون بكشد و دوباره در چرخه عمليات موتور اي‌جكس وارد كند. اين ترفند هم‌اكنون در سرويس Google Maps استفاده مي‌شود.
مشكل ديگري كه در رابطه با اي‌جكس وجود دارد، بي معني شدن مفهوم Bookmark است.

بازهم مكانيزم غيرخطي اي‌جكس مشكل ساز مي‌شود. آيا شما مي‌توانيد در نرم‌افزارهاي معمولي دسكتاپ يك لحظه مشخص را Bookmark كنيد و دوباره به آن برگرديد؟ بعضي از نرم‌افزارها مانند فتوشاپ
(سيستم Action history) اين‌كار را انجام مي‌دهند، ولي اغلب نرم‌افزارها چنين نيستند. در واقع به سختي مي‌توان از لحظات مختلف يك نرم‌افزار عكس گرفت و snapshot تهيه كرد.

اين‌كار به يك انباره پيچيده نياز دارد كه هم حالت‌هاي مختلف اينترفيس و هم وضعيت‌هاي متفاوت داده‌ها را قبل و پس از تغييرات در خود نگه دارد. البته درمورد Ajax راهكارهايي در اين زمينه پيشنهاد شده است. از جمله استفاده از anchor در HTML كه پس از علا‌مت َ‌در يك URL ‌ظاهر مي‌شود. از آنجايي كه جاوا اسكريپت امكان به روزرساني دايناميك آنكورها را دارد، بعضي برنامه‌نويسان پيشنهاد كرده‌اند كه از اين ترفند براي نگهداري حالات مختلف يك برنامه مبتني بر اي‌جكس استفاده شود. تكنيكي كه ممكن است در زمينه حل مشكل دكمه‌هاي Back و Forward نيز سودمند واقع شود.

يك مشكل عمده ديگر نيز در ارتباط با اي‌جكس وجود دارد. اين فناوري به شدت متكي به ‌XML[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ] است و اين شيء به دلايل امنيتي طي ماه‌هاي اخير هرچه بيشتر و بيشتر در نسخه‌هاي جديد مرورگرها محدود شده است. زيرا اگر هر كلاينتي بتواند از هر نقطه‌اي به هر سروري اين فرمان را بفرستد، آنگاه تهديد‌هاي امنيتي عليه سايت‌ها افزايش مي‌يابد. محدوديت‌هاي جديد اعمال‌شده در نسخه‌هاي اخير مرورگرها موجب شده كه فرمانXML[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ] به‌غير از سايتي كه صفحه وب از آنجا آمده است نتواند با سايت ديگري ديالوگ داشته باشد و اين مسئله در تناقض با كاربرد اي‌جكس در زمينه وب‌سرويس است.

البته براي غلبه بر اين مشكل راه‌حل‌هايي هم پيشنهاد شده است، از جمله اين‌كه شي ‌ءXML[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ] مي‌تواند تقاضاي ديالوگ با سايت‌هاي ديگر را به يك وب سرويس روي سايتي كه صفحه وب از آنجا آمده است بفرستد و اين وب‌سرويس (كه روي ميزبان سايت قرار دارد و با تمام اينترنت در ارتباط است) به صورت يك واسطه عمل كند و تقاضاهاي مورد نظر را براي سايت مقصد ارسال كند. اين وب سرويس‌هاي واسطه اصطلاحا Application Proxy ناميده مي‌شوند.

البته اي‌جكس مشكلات كوچك و جنبي ديگري هم دارد كه چندان مايه نگراني نيست ولي به هرحال قابل لمس هستند. به عنوان نمونه، نرم‌افزارهاي مبتني بر اي‌جكس از حجم زيادي جاوا اسكريپت استفاده مي‌كنند كه همه اينها در هر session دست‌كم يك‌بار بايد روي مرورگر بارگذاري شوند. بنابراين اولين باري كه چنين اينترفيسي بارگذاري مي‌شود صفحه وب آن‌قدر سنگين مي‌شود كه حتي با ارتباط باندپهن هم چند لحظه طول مي‌كشد كه صفحه بارگذاري شود.

در چنين شرايطي نوشتن يك موتور اي‌جكس هوشمند كه با كمتر ميزان كد بتواند بهترين كاركرد را داشته باشد، خود به يك چالش برنامه‌نويسي تبديل مي‌شود؛ ضمن اين‌كه كاربران وب در كشورهايي كه سرعت دسترسي به اينترنت در آنها به طور معمول زياد نيست بايد هنگام بارگذاري صفحات وب اين‌چنيني صبر پيشه كنند و برنامه‌نويسان نيز مراقب باشند تا در صورتي كه به دليل كندي خط يا قطع شدن‌ها لحظه‌اي آن، كدهاي جاوا اسكريپت به طور كامل روي مرورگر بارگذاري نشد، نرم‌افزار دچار خطا و اشتباه نشود و بتواند اين مشكلات را از طريق بارگذاري مجدد و هوشمندانه كد جاوا اسكريپت روي كلاينت، مديريت كند.

[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]

در عين حال وقتي حجم جاوا اسكريپت بارگذاري شده روي كلاينت افزايش مي‌يابد سرعت پردازش كامپيوتري كه كاربر استفاده مي‌كند نيز به يك مسئله تبديل مي‌شود. به بيان ديگر، اي‌جكس‌ شديدا منابع و resource ‌هاي سيستم را به‌كارمي‌گيرد، چنانكه به جرات مي‌توان گفت نرم‌افزارهاي مبتني‌بر Ajax براي كاربراني كه از كامپيوترهاي ضعيف و قديمي استفاده مي‌كنند قابل استفاده نيست.

اگر فرض را بر اين بگذاريم كه اين يك مشكل عمومي است و نه مختص وب، يعني كامپيوترهاي قديمي از اجراي نسخه جديد نرم‌افزارهاي مخصوص دسكتاپ نيز ناتوانند تا چه برسد به وب، آنگاه اين مشكل چندان اهميتي ندارد زيرا به مرور زمان، با جايگزين شدن سيستم‌هاي جديد، مسئله حل خواهد شد. در چنين شرايطي ممكن است كندي بارگذاري و اجراي كدهاي جاوا اسكريپت در نرم‌افزارهاي مبتني بر اي‌جكس عملا مزيت كاهش زمان انتظار براي بارگذاري مجدد صفحه را خنثي كند و نقض غرض شود. خوشبختانه مرتبا پردازنده هاي سريع‌تري وارد بازار مي‌شوند و مي‌توان اميدوار بود كه اين مشكل قبل از آن‌كه جدي شود، ناپديد شود.


پياده سازي Ajax


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

برنامه‌نويسان ASP.NET در صورتي كه از نسخه دات نت 1.1 استفاده مي‌كنند مي‌توان از ماژولAjax.NET استفاده كنند كه اولين پياده‌سازي دات‌نتي اي‌جكس و رايگان است. مايكروسافت در ASP.NET 2.0 اين فناوري را با نام Atlas وارد پلتفرم كرده است كه علاقه‌مندان مي‌توانند يكراست سراغ آن بروند.

براي پلتفرم جاوا نيز چندين پياده‌سازي مختلف، اغلب اپن سورس، وجود دارد. از جمله AjaxAnywhere و AjaxTagsرا ببينيد. همچنين چندين پياده‌سازي مخصوصPHP مي‌توانيد پيدا كنيد. ماژول‌هاي CPAINT و xajax از آن جمله‌اند. ماژول CPAINT براي ASP نيز قابل استفاده است. چند ماژول ديگر هم مانند GeneXus وجود دارند كه مالتي پلتفرم هستند. براي هريك از پلتفرم‌هاي Perl ،ColdFusion و Python نيز دست‌كم يك پياده‌سازي معروف وجود دارد. فهرست كامل همه اين پياده‌سازي‌ها را به همراه آدرس سايت و لينك دانلود آنها را مي‌توانيد در ضميمه آنلاين همين مقاله كه همزمان با انتشار اين شماره در بخش دانلود سايت ماهنامه شبكه قرار مي‌گيرد، پيدا كنيد.

دانلود : ابزارهاي برنامه نويسي AJAX ([ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ])
;)
shabakeh-mag.com