نمایش نتایج: از شماره 1 تا 8 , از مجموع 8

موضوع: Ajax : تحولی بزرگ در عرصه وب

  1. #1
    کاربرسایت PARS آواتار ها
    تاریخ عضویت
    ۸۷-۰۲-۲۵
    نوشته ها
    666
    سپاس ها
    0
    سپاس شده 0 در 0 پست

    Ajax : تحولی بزرگ در عرصه وب

    Ajax : تحولی بزرگ در عرصه وب ( بخش اول )
    اينترنتو مهمترين سرويس آن وب علاوه بر اين كه حيات بشری را در هزاره سوم دستخوشتحولات فراوانی كرده است ، توانسته است منشاء تحولات گسترده ای در سايرحوزه های فناوری گردد . در واقع ، تحول در زندگی بشريت مديون پيشرفت درساير حوزه های فناوری است . يكی از اين حوزه ها ، صنعت نرم افزار است .
    برای آشنائی با اين تحول بد نيست مروری سريع داشته باشيم به گذشته وب ونرم افزار تا از اين رهگذر بتوانيم ضرورت ايجاد فناورهای جديدی نظير Ajax( برگرفته شده از Asynchronous JavaScript And XML ) را بهتر درك كنيم .

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

    وب ايستا :زمانی كه تيم . برنرز لی در سال 1990 اولين پيشنهاد خود در رابطه با وب راارائه كرد ، ايده كار بسيار ساده بود : ايجاد يك شبكه از اطلاعات متصل شدهبه يكديگر با استفاده از ابرمتن ها و URIs ( برگرفته شده از UniformResource Identifiers ) . وب در آغاز به عنوان يك رسانه اشتراك اطلاعاتمطرح گرديد تا از طريق آن دانشمندان و محققين بتوانند دانش و اطلاعات رابين خود به اشتراك گذاشته و نتايج تحقيقات را با يكديگر مبادله نمايند .ارائه دهند گان با استفاده از يك استاندارد مستند سازی ، اطلاعات خود راتهيه و آنها را به مخاطبان خود ارائه می كردند . در آغاز برای استانداردمستند سازی از ابزاری كه در آن زمان خود هنوز استاندارد نشده بود استفادهمی گرديد . HTML ، ابزاری است كه با بكارگيری مجموعه ای از تگ ها ،استاندارد لازم جهت نمايش يك مستند در نرم افزارهای نمايش دهنده (مرورگرها ) را فراهم می نمايد . نرم افزارهای نمايش دهنده ، مجهز بهمفسرهائی جهت تفسير تگ ها و نمايش اطلاعات موجود در مستند بر اساس تعاريفاز قبل تعريف شده شدند . در آن زمان كه به سال های ابتدائی دهه 90 ميلادیبرمی گردد ، چيزی با نام برنامه های وب وجود نداشت و وب به عنوان رسانه ایجهت اشتراك و مبادله اطلاعات مطرح بود . تمامی تعاملات در عرصه وب محدودبه درخواست يك مستند توسط سرويس گيرنده و ارسال آن توسط سرويس دهنده بود .
    وب پويا با تمركز بر روی پردازش های سمت سرويس گيرنده: در ادامه ، نياز به انجام برخی پردازش های اوليه مطرح گرديد . با توجهبه اين كه اينترنت از يك بستر سرويس گيرنده و سرويس دهنده ( client serverbased) به منظور دريافت درخواست كاربر و پاسخ به آن استفاده می كرد ،طراحان و پياده كنندگان برای تحقق پردازش ها بر روی دو گزينه متمركز شدند: انجام پردازش ها در سمت سرويس گيرنده و يا سمت سرويس دهنده . در آغاز ،برای انجام پردازش ها بر روی سرويس گيرنده متمركز شدند . با اين هدف كهبتوان پردازش های مورد نياز را ( با حوزه ای كه در آن زمان تعريف شده بود) ، در سمت سرويس گيرنده انجام داد . برای تحقق خواسته فوق لازم بود كهبستر و ابزارهای لازم در بطن مرورگر ها ايجاد گردد . ظهور فناورهائی نظيرHtml-DOM ، جاوااسكريپت ، CSS ( برگرفته شده از cascading style sheets )و DHTML ( برگرفته شده از Dynamic HTML ) از جمله مهمترين تلاش های انجامگرفته در آن زمان برای تحقق پردازش ها در سمت سرويس گيرنده بود . برایآشنائی بيشتر با تلاش های انجام گرفته در آن زمان بد نيست مروری سريعداشته باشيم به آنچه طی ساليان گذشته در عرصه وب اتفاق افتاده است .

    • [/*:m:2xdy0c2p]
    • عرضه جاوا اسكريپت: Netscape Navigator اولين مرورگر وبی بود كه پس از طراحی و پياده سازیموفقيت آميز توانست به عنوان كاتاليزوری در رشد وب و عرضه فناوری هایمرتبط با آن نقش بسيار مثبتی را ايفاء كند . اغلب سازمان ها و شركت ها ازمرورگر فوق به عنوان معيار استاندارد خود برای پياده سازی فناوری های جديداستفاده می كردند . يكی از اين فناوری ها ، جاوا اسكريپت بود .
      جاو ااسكريپت توسط Brendan Eich از نت اسكيپ ايجاد و نسخه شماره دو آن درسال 1995 عرضه گرديد . برای اولين مرتبه ، پياده كنندگان قادر به ايجادصفحات وبی شدند كه می توانست با كاربر تعامل برخورد نمايد . استفاده ازجاوا اسكريپت برای معتبر سازی داده در سمت سرويس گيرنده و حذف برخیمبادلات غيره ضروری بين سرويس گيرنده و سرويس دهنده از جمله مهمتريندستاورد بكارگيری جاوا اسكريپت در آن زمان بود . بدين ترتيب نطفه پردازشهای ساده در سمت سرويس گيرنده به كمك جاوا اسكريپت بسته شد . قابليت فوقدر زمانی كه اكثر كاربران اينترنت از طريق يك مودم با سرعت 8 . 28 ( Kbps) به شبكه وصل می شدند ، باعث می شد كه تعداد دفعاتی كه كاربران مجبور بهانتظار برای دريافت يك پاسخ از سرويس دهنده باشند ، كاهش يابد . تحول فوقاولين مرحله جدی به سمت رويكرد Ajax در آن زمان بود .
      [/*:m:2xdy0c2p]
    • ايجاد فريم :در نسخه اوليه HTML با هر سند به عنوان يك موجوديت رفتار می شد تا اين كهدر نسخه شماره چهار فريم ها معرفی گرديدند . با استفاده از فريم ها نمايشيك صفحه وب می توانست مشتمل بر بكارگيری مجموعه ای از ساير صفحات وب باشد. ايده فوق يك اصلاح ساختاری اساسی در خصوص نحوه نمايش يك صفحه وب بود .Netscape Navigator 2.0 اولين مرورگری بود كه از فريم ها و جاوا اسكريپتحمايت كرد . اين يك مرحله جدی به سمت رشد و توسعه Ajax در آن زمان بود .
      با توجه به اين كه يك فريم ، يك درخواست مجزاء را برای سرويس دهنده ايجادمی كرد ، قابليت كنترل يك فريم و محتويات آن با استفاده از جاوا اسكريپتدنيای جديدی را پيش روی طراحان و پياده كنندگان صفحات وب قرار داد .
      [/*:m:2xdy0c2p]
    • روش فريم مخفی: به موازات اين كه پياده كنندگان درگير نحوه استفاده از فريم ها شدند ،يك روش جديد با هدف تسهيل در امر ارتباط بين سرويس گيرنده و سرويس دهندهمطرح گرديد . روش فريم مخفی شامل تنظيم يك frameset با طول و يا عرض صفرپيكسل است كه هدف اساسی آن انجام فرآيند مقداردهی اوليه با سرويس دهندهبود . فريم مخفی شامل يك فرم HTML با فيلدهای خاصی است كه می توانست بطوراتوماتيك توسط جاوا اسكريپت تكميل و برای سرويس دهنده ارسال گردد . زمانیكه فريم از سرويس دهنده مراجعت می كرد ، يك تايع ديگر جاوا اسكريپتفراخوانده می شد تا اعلام نمايد كه داده از سمت سرويس دهنده برگردانده شدهاست . روش فريم مخفی ، اولين مدل درخواست و پاسخ غيرهمزمان را برای برنامههای وب به ارمغان آورد ( اولين رويكرد به مدل ارتباطی Ajax ) . [/*:m:2xdy0c2p]
    • Dynamic HTML و DOM : تاسال 1996 ، وب يك دنيای ايستا را تجربه می كرد و برای تعامل محدود باكاربر از جاوا اسكريپت و روش فريم های مخفی استفاده می گرديد . همچنانامكان تغيير در محتويات يك صفحه بدون نياز به load مجدد آن از سرويس دهندهوجود نداشت . در ادامه IE 4.0 ( برگرفته شده از Internet Explorer ) توسطشركت مايكروسافت ارائه گرديد . در اين نسخه علاوه بر بكارگيری اكثر فناوریهای استفاده شده در Netscape Navigator ، يك ويژگی مهم ديگر با نام DHTML( برگرفته شده از Dynamic HTML ) نيز ارائه گرديد . DHTML به پيادهكنندگان اجازه می داد تا بتوانند هر بخشی از يك صفحه مستقر شده در حافظهسرويس گيرنده را با استفاده از جاوا اسكريپت تغيير دهند . DHTML به همراهعرضه غيره منتظره CSS ( برگرفته شده از cascading style sheets ) به وب ونحوه پياده سازی صفحات وب يك نيروی تازه داد. پياده كنندگان توانستند باتركيب DHTML و روش فريم های مخفی هر بخشی از يك صفحه را با استفاده ازاطلاعات دريافت شده از سرويس دهنده refresh نمايند . ويژگی فوق در زمانخود توانست يك تحول بزرگ در عرصه وب را ايجاد نمايد .
      در ادامه ، DOM ( برگرفته شده از Document Object Model ) ارائه گرديد .برخلاف DHTML كه صرفا" امكان تغيير بخش هائی خاص از يك صفحه وب را فراهممی كرد ، DOM دارای يك هدف بلندپروازانه ديگر بود . هدف DOM ارائه يكساختار برای تمامی صفحه بود . انجام عمليات و يا پردازش بر اساس ساختارفوق ، امكان تغيير يك صفحه را فراهم می آورد . اين مرحله بعدی به سمت Ajaxبود .
      [/*:m:2xdy0c2p]
    • Iframes : بااين كه روش فريم مخفی بطور غيرقابل پيش بينی متداول گرديد ، ولی دارایچالش های مختص به خود بود . افرادی می بايست زمان زيادی را صرف نوشتن يكframeset می كردند تا شرايط استفاده از فريم های مخفی فراهم گردد . زمانیكه عنصر </ iframe > در سال 1997 و به عنوان بخشی از نسخه رسمی HTML4.0 ارائه گرديد ، يك قدم اساسی ديگر به سمت انقلاب بر روی وب حركت شد .
      در مقابل تعريف frameset ، پياده كنندگان قادر به استفاده از فريم ها درهر مكانی از صفحه شدند . بدين ترتيب پياده كنندگان توانستند از iframeنامرئی ( با بكارگيری قابليت های CSS ) در يك صفحه استفاده نمايند و شرايطعملياتی لازم جهت مبادله داده بين سرويس گيرنده و سرويس دهنده را فراهمنمايند . زمانی كه نسخه نهائی DOM در IE 5.0 و Netscape 6.0 پياده سازیگرديد ، قابليت ايجاد فريم ها به صورت پويا نيز فراهم گرديد . در چنينحالتی از يك تابع جاوا اسكريپت به منظور ايجاد يك iframe ، ايجاد يكدرخواست و دريافت پاسخ ( جملگی بدون نياز به اضافه كردن تگ های HTML اضافهدر يك صفحه ) استفاده می گرديد . اين روش معروف به روش iframe مخفی گرديد.
      [/*:m:2xdy0c2p]
    • XMLHttp : پيادهكنندگان مرورگر شركت مايكروسافت پس از مشاهده عموميت استفاده از روش هائینظير فريم مخفی و iframe مخفی ، تصميم گرفتند يك ابزار بهتر جهت تعامل بينسرويس دهنده و سرويس گيرنده را ارائه نمايند . اين ابزار به شكل يكاكتيوايكس و با نام XMLHttp در سال 2001 ارائه گرديد .
      زمانی كه مايكروسافت حمايت خود از XML را از طريق يك كتابخانه با نام MSXML آغاز كرد ، شی XMLHttp نيز به همراه آن ارائه گرديد .
      با اين كه شی فوق به همراه خود نام XML را يدك می كشيد ولی چيزی بمراتببيشتر از روشی برای انجام عمليات بر روی داده XML بود . شی فوق همانند يكدرخواست HTTP بود كه می توانست توسط جاوا اسكريپت كنترل گردد . پيادهكنندگان دارای قدرت دستيابی به كدهای وضعيت HTTP و هدر همانند دادهبرگردانده شده از طريق سرويس دهنده بودند . داده می توانست به صورت XMLساختيافته ، اشياء سريال شده جاوا اسكريپت و يا ساير فرمت های مورد نظرپياده كننده باشد . در مقابل استفاده از فريم های مخفی و يا iframe ، اينامر ميسر گرديد كه به سرويس دهنده از طريق كد و توسط جاوا اسكريپت دستيابیداشت ( مستقل از چرخه load و reload صفحه ) . شی XMLHttp پس از مدتی بهعنوان يك موفقيت بزرگ برای پياده كنندگان مرورگر IE عرض اندام كرد .
      به موازات متداول شدن شی فوق ، پياده كنندگان در Mozilla نسخه اختصاصی ازXMLHttp را پياده سازی كردند . در مقابل اجازه دستيابی از طريق اكتيو ايكس، پياده كنندگان موزيلا متدها و خصلت ها را در يك شی ذاتی مرورگر و با نامobjectXMLHttpRequest ارائه كردند . پس از اين كه دو مرورگر اصلی در بازارهر يك توانستند به نوعی از XMLHttp حمايت نمايند ، مرورگرهائی ديگر نظيرOpera و Safari نيز هر يك به نوعی حمايت خود از شی فوق را اعلام كردند .
      [/*:m:2xdy0c2p]
    بدينترتيب پياده كنندگان صفحات وب توانستند ، صفحاتی را خلق نمايند كه باتعبيه كدهای مورد نياز در آنها ، امكان پردازش در سمت سرويس گيرنده رافراهم نمايند . انجام پردازش های اوليه نظير تغيير رنگ و شكل ظاهری صفحات، مديريت عناصر موجود بر روی يك صفحه و تغيير آنها در زمان اجراء متناسببا عمليات كاربر ، بررسی صحت داده ورودی توسط كاربر در يك فرم سادهاطلاعاتی ، دريافت داده در پس زمينه و عدم نياز به ارسال تمامی صفحه وبهنگام سازی بخش هائی خاص از آن ( با بكارگيری فريم ها ) ، نمونه هائی ازتاثير فناوری هائی بود كه توان پردازش در سمت سرويس گيرنده را در اختيارپياده كنندگان قرار می داد .
    وب پويا با تمركز بر روی پردازش های سمت سرويس دهنده
    همزمان با گسترش اينترنت و وب ، ايجاد صفحات وب با محتويات پويا با اتكاءبه منابع داده موجود در سمت سرويس دهنده و ساير شرايط تاثير گذار درفرآيند پاسخ به درخواست كاربران مطرح گرديد . همين موضوع باعث شد كه توجهبه سرويس دهنده برای انجام برخی پردازش ها نيز در دستور كار قرار بگيرد .ظهور فناورهائی نظير ASP ( برگرفته شده از Active Server Page ) و PHP (برگرفته شده از Hypertext Preprocessor ) از اوايل سال 1996 پاسخی به ايننياز بود . از آن زمان به بعد بود كه كم كم واژه برنامه های وب قدم درعرصه نرم افزار گذاشت . اگر به تعاريف آن زمان برگرديم مشاهده می كنيم كهدر ابتدا از اين اصطلاح در خصوص صفحات وب پويا استفاده می گرديد .
    نگرش جزيره ای به فناورهای مرتبط با برنامه های وب تا اوايل سال 1999ادامه يافت . تا اين كه شركت های متعددی به فكر ارائه يك پلت فرم با درنظر گرفتن واقعيتی به نام اينترنت افتادند . دات نت ، پلت فرم ارائه شدهتوسط شركت مايكروسافت يك نمونه در اين زمينه است كه از صدر تا ذيل آن بادر نظر گرفتن واقعيتی با نام اينترنت طراحی و پياده سازی شده است .
    در اين دوران بود كه به برنامه های وب با يك نگاه جامع تر و سيستماتيك ترنگاه می شد . در طی پنج سال گذشته ، اين نوع برنامه ها توانستند بابكارگيری مجموعه ای از فناوری ها منشاء تحولات عمده ای در خصوص بردناينترنت در متن زندگی (و نه حاشيه ! ) مردم جهان باشند . ايده " نرم افزاربه عنوان سرويس " و يا برنامه نويسی سرويس گراء از نگرش های جديد به مقولهنرم افزار و دنيای برنامه نويسی در عرصه وب است .
    موج استفاده از اينترنت برای ارائه خدمات online ( ارائه شده به كاربراناز طريق برنامه های وب ) باعث گرديد تا معماری و رفتار اينگونه برنامه هابا تامل بيشتر مطالعه و بررسی گردد . هدف ، ايجاد برنامه های وب با كارآئیمطلوب است تا ضمن ارائه خدمات خود دارای ويژگی هائی نظير : افزايش تعاملكاربر با برنامه ( همانند برنامه های desktop ) ، استفاده بهينه از محيطانتقال و به حداقل رساندن ترافيك آن ، مديريت بهينه منابع سمت سرويسگيرنده در پاسخ به رويدادهای محقق شده سمت سرويس گيرنده ، عدم ارسالاطلاعات غيره ضروری توسط سرويس گيرنده و ... باشند . ماحصل اين تفكراتظهور فناوری جديدی با نام Ajax است كه شركت هائی نظير گوگل و مايكروسافتتوانستند از سال 2005 با بكارگيری اين فناوری تحول بزرگی را در عرصه برخیاز سرويس ها و خدمات خود ايجاد نمايند .

    حمع بندی !
    همزمان با بحث معماری سرويس گيرنده و سرويس دهنده دو واژه fat-client وthin-client قدم در ادبيات نرم افزار گذاشتند . در معماری فوق ، هدفاستفاده از توان پردازشی سرويس گيرنده و سرويس دهنده برای اجرای يك برنامهاست . استفاده از توان پردازشی هر يك از عناصر اصلی درگير در معماری فوق وتعريف سهمی خاص برای هر يك ( سرويس گيرنده و سرويس دهنده ) ، از اهدافاوليه و در عين حال بسيار مهم معماری فوق است .
    پياده كنندگان برنامه های كامپيوتری خصوصا" برنامه های وب ، همواره با اينسوال مواجه بوده و هستند كه در تقسيم سهم پردازش ، چه ميزان سهم را میبايست به سرويس گيرنده داد ؟ چه پردازش هائی را می توان در سمت سرويسگيرنده انجام داد ؟ در پاسخ به اين سوال رويكردهای مختلفی مطرح شده است .fat client و thin client دو نمونه متداول در اين زمينه می باشند .
    در fat client ، هدف بكارگيری پتانسيل های مرورگر برای انجام اكثر پردازشها در يك برنامه وب است . رويكرد فوق در اواسط دهه 90 ميلادی در كانونتوجه طراحان و پياده كنندگان وب قرار گرفت . علت اين امر به تلاش شركت هایبزرگ نرم افزاری در جهت توليد و ارائه فناورهائی بود كه توانمندی مرورگردر انجام پردازش را افزايش می داد . ظهور فناورهائی نظير جاوا اسكريپت ،ايجاد يك اينترفيس برنامه نويسی در مرورگر ،ايجاد يك مدل شی گراء ( ولوناقص ) برای يك سند HTML با هدف امكان دستيابی به هر يك از عناصر موجود درآن ، عرضه DHTML و CSS جملگی نشاندهنده تلاش هائی است كه در آن زمان باهدف افزايش توان پردازش در سمت سرويس گيرنده مطرح شد .
    پس از گذشت مدت زمان كوتاهی ( از ابتدای سال 1996 ) ، تمايل به سمت برنامههای وب با ويژگی thin client مطرح گرديد . در مدل فوق ، هدف كاهش سهمپردازش در سمت سرويس گيرنده و افزايش پردازش های سمت سرويس دهنده بود .ظهور فناورهای متعددی نظير ASP و PHP تنها نمونه ای اندك از تلاش هایانجام يافته در آن دوران برای افزايش توان پردازش در سمت سرويس دهنده است.
    با اين كه در ساليان گذشته همچنان از پتانسيل های سمت سرويس گيرنده برایانجام پردازش در برنامه های وب استفاده می گرديد ، ولی رفتار اكثر برنامههای وب مبتنی بر اين واقعيت بود كه : " داده را وارد نمائيد ، صفحه رابرای سرويس دهنده ارسال نمائيد و منتظر دريافت پاسخ باشيد " .
    هم اينك ما شاهد يك تحول بزرگ ديگر در عرصه برنامه نويسی هستيم . تحولی كهمهمترين دستاورد آن ، تولد نسل جديدی از برنامه های وب است كه در آنهاكاربر با برنامه دارای تعامل بمراتب بيشتری نسبت به نسل گذشته برنامه هایوب است . اين تحول عظيم نرم افزاری به كمك مجموعه ای از فن آوری ها كه درمجموع به آنها Ajax گفته می شود ، محقق می گردد .
    آيا Ajax قصد دارد با تغيير در الگوی رفتاری برنامه های وب فاصله آنها رابا برنامه های desktop كاهش دهد ؟ آيا زمان آن رسيده است كه برای پردازشهای سمت سرويس گيرنده از يك پلت فرم جامع ، همانند پلت فرم های ارائه شدهسمت سرويس دهنده ، استفاده گردد ؟ آيا تاكنون از اين فناوری به منظورايجاد برنامه های وب استفاده شده است ؟ با استفاده از چه مكانيزم هائی میتوان مبادله اطلاعات بين سرويس گيرنده و سرويس دهنده را كاهش و از پهنایباند موجود استفاده بهينه كرد ؟
    اجازه دهيد به اين سوال و سوالات بسيار ديگر در رابطه با Ajax ، فناورهایمرتبط با آن و از همه مهمتر كاربرد آن در بخش های بعدی پاسخ دهيم .
    منبع : [برای مشاهده لینک ها شما باید عضو سایت باشید برای عضویت در سایت بر روی اینجا کلیک بکنید]

  2. #2
    کاربرسایت PARS آواتار ها
    تاریخ عضویت
    ۸۷-۰۲-۲۵
    نوشته ها
    666
    سپاس ها
    0
    سپاس شده 0 در 0 پست

    Re: Ajax : تحولی بزرگ در عرصه وب

    Ajax : تحولی بزرگ در عرصه وب ( بخش دوم ) در بخش اولضمن بررسی تاثير متقابل وب بر نرم افزار ، مروری داشتيم به وب ايستا و وبپويا و اين كه برای انجام پردازش های مورد نياز در برنامه های وب می تواناز امكانات و فناوری های متعددی در سمت سرويس گيرنده و سرويس دهندهاستفاده كرد . هدف از بيان مطالب فوق ، پاسخ به اين سوال بود كه چرا بهوجود يك فناوری ديگر نظير Ajax نياز است ( گرچه Ajax يك فناوری نيست ومجموعه ای از فناوری ها را شامل می شود ) .
    با اين كه ايده فناورهائی نظير Ajax در گذشته نيز وجود داشته است و پيادهكنندگان برنامه های وب در زمان خود با بكارگيری برخی فناوری ها و ترفندهاتوانسته بودند مشكل خود را تا حدود زيادی برطرف نمايند ولی گذشت زمان وگسترش باور نكردنی اينترنت ، باعث شد تا استفاده از بستر فوق برای ارائهسرويس های online در دستور كار اكثر سازمان ها و شركت ها در اقصی نقاطجهان قرار بگيريد . همين موضوع باعث شد كه دگر باره جامعه بزرگ طراحان وپياده كنندگان برنامه های وب اين نياز را احساس كنند كه به يك راه حل جامعو سيستماتيك برای برخورد با مسائل خود ( خصوصا" تعامل با كاربر ) در دنياینوين برنامه نويسی وب نياز دارند . دنيائی كه در آن دقت و سرعت در ارائهخدمات online با بكارگيری كمترين منابع و توليد بيشترين بهره وری ، رمزماندگاری يك سازمان در مدار رقابت و پيشرفت است . همين امر باعث شد كهشركت های بزرگ توليد كننده نرم افزار و خدمات online نيز دست به كار شوندو چيزی را خلق كنند كه ما امروزه از آن با نام Ajax ياد می كنيم .
    در اين بخش به بررسی موارد زير خواهيم پرداخت :


    • [/*:m:3u71er0m]
    • تولد Ajax و ريشه يابی علت انتخاب اين نام [/*:m:3u71er0m]
    • Ajax و فناوری های مرتبط با آن [/*:m:3u71er0m]
    • اصول حاكم بر فناوری Ajax . [/*:m:3u71er0m]
    • نحوه كاركرد Ajax در برنامه های وب [/*:m:3u71er0m]
    تولد Ajax
    در فوريه سال 2005 ، Jesse James Garrett از Adaptive Path مقاله ای را با عنوان " يك رويكرد جديد به برنامه های وب" بر روی وب سايت خود منشتر كرد . وی در اين مقاله ضمن اشاره به اين موضوعكه فاصله بين برنامه های وب و desktop در حال از بين رفتن است ، به بررسیدو نمونه از برنامه های وب جديد با نام Google Suggest و Google Mapsپرداخته بود . Garrett پس از تشريح نحوه عملكرد برنامه های فوق ، برایاولين مرتبه از واژه Ajax در مقاله خود استفاده كرد .
    وی در مقاله خود دنيائی را پيش بينی كرده بود كه در آن برنامه های وب ازلحاظ قابليت دستيابی ، پاسخ گوئی و سادگی قابل مقايسه با برنامه هایdesktop خواهند شد .

    Ajax چيست ؟

    • [/*:m:3u71er0m]
    • Ajax برگرفته شده از Asynchronous JavaScript XML است و مشتمل بر مجموعه ای از فناوری ها است ، نه صرفا" يك فناوری .[/*:m:3u71er0m]
    • Ajax، اساس و پايه چيزی است كه امروزه از آن با نام وب 2 نام برده می شود (نسل جديد وب ) . ايده اصلی ، ايجاد برنامه های وبی است كه دارای شكل ظاهریو توانمندی هائی مشابه با برنامه های desktop باشند . [/*:m:3u71er0m]
    • Ajaxچيزی بيشتر از يك نگرش جديد به برنامه های وب نيست . نگرشی كه در آن صرفا"يك حجم اندك از اطلاعات بين سرويس گيرنده و سرويس دهنده با هدف افزايشتعامل كاربر با برنامه ، مبادله می گردد . [/*:m:3u71er0m]
    • Ajax ، مشتمل بر مجموعه ای از فن آوری ها است كه هر يك دارای جايگاه مختص به خود می باشند :

      - فن آوری های استاندارد presentation نظير XHTML و CSS
      - بهنگام سازی پويای يك صفحه مستقر شده در حافظه با استفاده از DOM ( برگرفته شده از Document Object Model )
      - مبادله و پردازش داده با استفاده از XML (فرمت مبادله داده ) و XSLT ( تبديل XML به XHTML )
      - بازيابی داده غيرهمزمان با استفاده از XMLHttpRequest ( كارگزار اوليه مبادله اطلاعات )
      و جاوا اسكريپت كه همه چيز را به يكديگر مرتبط می نمايد و از آن برای برنامه نويسی Ajax engine استفاده می گردد .
      [/*:m:3u71er0m]
    • دردنيای واقعی ، از تمامی فناوری های فوق در Ajax استفاده می گردد ولی بهوجود HTML/XHTML ، DOM و Javascript بيش از همه نياز است چون :
      از XHTML برای نمايش اطلاعات استفاده می گردد .
      از DOM برای تغيير بخش هائی از يك صفحه XHTML بدون نياز به load مجدد صفحه استفاده می گردد.
      از جاوا اسكريپت ، برای مقداردهی اوليه ارتباط بين سرويس گيرنده و سرويس دهنده و بهنگام سازی صفحات وب به كمك DOM استفاده می گردد .
      [/*:m:3u71er0m]
    • يكعنصر اساسی و مهم ديگر كه در مقاله Garrett به آن اشاره نشده است ، ضرورتانجام پردازش های سمت سرويس دهنده است . تمامی فناوری های اشاره شده ( درپاراگراف قبل ) ، در ارتباط مستقيم با Ajax engine سمت سرويس گيرنده میباشند . بدون وجود يك سرويس دهنده مطمئن و پاسخگو به منظور ارسال محتوياتبرای Ajax engine ، در عمل Ajax فاقد كارآئی لازم خواهد بود . صرفنظر ازفناوری استفاده شده در سمت سرويس دهنده ( نظير PHP و يا ASP.NET ) ، میبايست اين اطمينان حاصل گردد كه داده با فرمت صحيح برای Ajax engine ارسالمی گردد . [/*:m:3u71er0m]
    • ازشی XMLHttpRequest درون جاوا اسكريپت برای ارتباط با سرويس دهنده استفادهمی گردد تا در ادامه بتوان داده برگردانده شده از سرويس دهنده ( با فرمتXml و يا متن معمولی ) را پردازش كرد .[/*:m:3u71er0m]
    • از DHTML و CSS برای نمايش نتايج در مرورگر استفاده می گردد . [/*:m:3u71er0m]
    • هدفاز كنارهم قرار گرفتن تمامی فناوری های اشاره شده ، اين است كه شكل ظاهریبرنامه های وب و نحوه پاسخ گوئی آنها به خواسته كاربران مشابه برنامه هایdesktop گردد .[/*:m:3u71er0m]
    همانگونه كه در نام اين فناوری مشخص است ، Ajax مشتمل بر مجموعه ای از فناوری ها است : Asynchronous JavaScript XML

    • [/*:m:3u71er0m]
    • غيرهمزمان و يا asynchronous بدينمعنی است كه مرورگر لازم نيست منتظر بماند تا داده از سرويس دهندهبرگردانده شود و می تواند به محض دريافت داده آن را پردازش نمايد . بهعبارت ديگر ، انتقال داده در پس زمينه انجام شده و مرورگر مجبور به توقف وانتظار برای تحقق اتفاقی نخواهد بود .
      رويكرد فوق نشاندهنده يكی از ويژگی های مهم و حياتی Ajax است . در چنينمواردی، می توان داده را پس از ارسال توسط سرويس دهنده ، پردازش كرد .لازم نيست تمامی برنامه را معطل رسيدن داده از سمت سرويس دهنده كرد .
      در صورتی كه لازم است پردازش های سمت سرويس گيرنده منتظر دريافت دادهبمانند ، مكانيرم دريافت و پردازش داده می بايست بطور همزمان انجام شود .در صورتی كه يك ارتباط ضعيف بين سرويس گيرنده و سرويس دهنده برقرار شدهباشد اين موضوع می تواند عملكرد و موفقيت يك برنامه وب را با مشكل مواجهنمايد .
      [/*:m:3u71er0m]
    • بخش جاوا اسكريپت واژه Ajax نيزبسيار مهم است چراكه بالفعل شدن پتانسيل های Ajax در مرورگر توسط آن محققمی گردد . Ajax به كمك جاوا اسكريپت با سرويس دهنده ارتباط خود را برقرارمی نمايد و در ادامه نيز داده برگردانده شده از سرويس دهنده را پردازش مینمايد . [/*:m:3u71er0m]
    • بخش xml واژه Ajax دارای چه مسئوليتی است؟ XML به عنوان يك استاندارد جهانی در عرصه وب مطرح است و به كمك آن میتوان از يك روش مبتنی بر متن برای مبادله داده در عرصه اينترنت استفادهكرد . يكی از دلايل مهم گسترش xml ، ماهيت مبتنی بر متن آن است . با توجهبه اين كه طراحی اينترنت بگونه ای انجام شده بود تا بتواند مستندات مبتنیبر متن نظير اسناد HTML را نمايش دهد ، وجود xml به منزله قلابی است كه میتوان آن را دور اينترنت انداخت و به صيد داده پرداخت. داده ئی كه به همراهساختار خود می تواند امكان پردازش را در ساير سيستم ها فراهم نمايد . بههمين دليل است كه برنامه های Ajax بگونه ای نوشته می گردند تا بتوانند برروی داده برگردانده شده از سرويس دهنده با فرمت xml ، عمليات مورد نظر راانجام دهند . به عبارت ديگر ، پس از برقراری ارتباط با سرويس دهنده ، دادهبا فرمت xml برگردانده خواهد شد .
      xml ، صرفا" يكی از روش های برگرداندن داده است و در صورت لزوم می توان از فرمت هائی ديگر نظير متن معمولی نيز استفاده كرد .
      [/*:m:3u71er0m]
    • دركنار جاوا اسكريپت و XML ، فناوری Ajax با فناوری های ديگری نظير DHTML وCSS نيز كار می كند . به كمك فناورهای فوق می توان داده موجود در يك صفحهوب را بدون نياز به load تمامی صفحه بهنگام كرد ( صرفا" load بخشی كهضرورت آن احساس می شود ) . پتانسيل فوق يكی از اهداف و ويژگی های مهمبرنامه های وب مبتنی بر فناوری Ajax محسوب می گردد . [/*:m:3u71er0m]
    • بخشیاز جاوا اسكريپت كه امكان Ajax را ميسر می سازد ، شی XMLHttpRequest است .شی فوق تقريبا" در تمامی مرورگرهای مدرن و پيشرفته از قبل تعبيه شده است .به كمك اين شی امكان اتصال به سرويس دهنده و مديريت داده برگردانده شده ازآن در پس زمينه فراهم می گردد .
      اقتدار Ajax نه تنها وابسته به جاوا اسكريپت بلكه مديون شی XMLHttpRequest است .
      [/*:m:3u71er0m]
    اصول Ajax
    Ajax هنوز در ابتدای راه است و بسياری از پياده كنندگان با اينپرسش مواجه هستند كه از اين فناوری در چه زمانی و در چه نوع برنامه هائیمی توان استفاده كرد . عدم شناخت مناسب از اين فناوری باعث می شود تا ازآن در برنامه هائی استفاده گردد كه نه تنها قابليت و يا ويژگی جديدی را بهبرنامه اضافه نمی نمايد بلكه در بسياری از موارد عدم موفقيت يك برنامه ونارضايتی كاربران آن را به دنبال خواهد داشت .
    زمانی می توان اين ادعا را داشت كه يك برنامه وب مبتنی بر Ajax در اهداف خود موفق بوده است كه در آن اصول زير رعايت شده باشد .


    • [/*:m:3u71er0m]
    • به حداقل رساندن ترافيك: برنامه های Ajax می بايست حتی المقدور حجم اندكی از اطلاعات را برایسرويس دهنده ارسال و يا از آن دريافت نمايند . به عبارت ديگر ، بابكارگيری Ajax می بايست حجم ترافيك بين سرويس گيرنده و سرويس دهنده كاهشيابد . [/*:m:3u71er0m]
    • عدم سردرگمی كاربر :برنامه های وب مبتنی بر فناوری Ajax مدل تعامل با كاربر مختلفی را نسبت بهبرنامه های وب سنتی معرفی كرده اند . در مقابل وب استاندارد ( كليك كن ومنتظر باش ) ، برخی برنامه های Ajax از يك رويكرد ديگر برای پياده سازیبخش رابط كاربر خود نظير drag-and-drop و يا double-clicking استفاده مینمايند . صرفنظر از نوع مدل انتخاب شده برای پياه سازی تعامل با كاربر ،مهم ارائه امكانات بخش رابط كاربر بگونه ای است كه همواره كاربر در سريعترين زمان بتواند در خصوص انجام حركت بعدی خود تصميم گيری نمايد . [/*:m:3u71er0m]
    • استفاده منطقی از تجارب مثبت گذشته :وقت خود را بی خودی به ابداع مدل های تعامل با كاربر جديد كه كاربران شمابا آنها آشنا نيستند ، هدر ندهيد . استفاده از تجارب برنامه های وب سنتی وdesktop می تواند پياده كنندگان را در طراحی يك مدل مناسب جهت تعامل باكاربر كمك نمايد . [/*:m:3u71er0m]
    • اجتناب از بكارگيری عناصر غيرضروری :از بكارگيری عناصر غير ضروری نظير تكرار انيميشن و بخش هائی نظير blinkingpage اجتناب كنيد. بكارگيری اين چنين عناصری باعث می شود تا كاربران درزمان انجام فعاليت های مورد نظر دچار سردرگمی شوند . [/*:m:3u71er0m]
    • قابليت دسترسی و رضايت كاربران: برنامه های Ajax را با در نظر گرفتن رفتار و نوع خواسته كاربران طراحی وپياده سازی نمائيد . برای طراحی و پياده سازی خود را در يك مكان بستهمحبوس ننمائيد. در غير اينصورت همواره اين احتمال وجود خواهد داشت كهخواسته برخی از كاربران ناديده گرفته شود . قابليت دسترسی و رضايت كاربرانيكی از نكات بسيار مهم در موفقيت يك برنامه كامپيوتری محسوب می گردد . [/*:m:3u71er0m]
    • پيشگيری از دانلود تمامی صفحه: تمامی ارتباط با سرويس دهنده پس از مقدار دهی اوليه دانلود صفحه ، میبايست توسط Ajax engine مديريت گردد . عدم مديريت صحيح بر روی فرآيند فوقمی تواند بخش رابط كاربر يك برنامه وب را با مشكل اساسی مواجه سازد ( نظيردانلود حجم اندكی از داده در يك مكان و دانلود تمامی صفحه در بخش ديگر ) [/*:m:3u71er0m]
    • توجه به نياز كاربران قبل از هر چيز: برنامه های Ajax را قبل از هر چيز با كاربران خيالی در ذهن طراحی نمائيد. سهولت در انجام عمليات متداول می بايست در دستور كار قرار بگيرد . كمتردر انديشه انجام كارهای تبليغاتی و يا افكت های غيرضروری باشيد . [/*:m:3u71er0m]
    نقطهمشترك بين تمامی اصول اشاره شده ، قابليت استفاده از يك برنامه با حداكثرظرفيت و رضايتمندی كاربران است . هدف اوليه Ajax ، بهبود و ارتقاء بخشرابط كاربر برنامه ها با هدف رضايتمندی بيشتر كاربران است .
    نحوه كار Ajax
    در برنامه های وب سنتی مرورگر مسئوليت مقداردهی اوليه درخواستها و پردازش آنها جهت ارسال به سرويس دهنده وب را برعهده دارد . در مقابل، در Ajax يك لايه ميانی ( كه Garrett آن را Ajax engine ناميد ) مسئوليتمديريت ارتباط برقرار شده را برعهده می گيرد . Ajax engine در واقع يك شیجاوا اسكريپت و يا تابع است و زمانی كه به اطلاعاتی از سرويس دهنده نيازباشد ، از آن استفاده خواهد شد .
    در مقابل برنامه های وب سنتی كه يك لينك به يك منبع ديگر ارائه می گردد (نظير يك صفحه وب ديگر ) ، در برنامه های وب مبتنی بر Ajax ، هر لينك باعثفراخوانی Ajax engine می گردد كه وظيفه آن زمانبندی و انجام درخواست بطورغيرهمزمان است .
    سرويس دهنده ( كه از لحاظ سنتی اسناد HTML ، تصاوير ، CSS و جاوا اسكريپترا ارائه می نمايد ) ، بگونه ای پيكربندی می گردد تا داده مورد نياز را دراختيار Ajax Engine قرار دهد. اين داده می تواند متن معمولی ، XML و ياساير فرمت های مورد نياز داده باشد. بديهی است در چنين مواردی ، Ajaxengine می بايست قادر به خواندن و تفسير داده باشد .
    پس از دريافت پاسخ لازم از سرويس دهنده ، 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 استفاده می گردد .
    منبع : [برای مشاهده لینک ها شما باید عضو سایت باشید برای عضویت در سایت بر روی اینجا کلیک بکنید]

  3. #3
    کاربرسایت PARS آواتار ها
    تاریخ عضویت
    ۸۷-۰۲-۲۵
    نوشته ها
    666
    سپاس ها
    0
    سپاس شده 0 در 0 پست

    Re: Ajax : تحولی بزرگ در عرصه وب

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

    Google Suggest
    اجازهدهيد كار خود را با نمونه ای آغاز نمائيم كه برای شما كاملا" آشنا است .در زمان استفاده از اينترنت هر يك از ما بدفعات از موتورهای جستجو جهتيافتن اطلاعات مورد نياز حود استفاده می كنيم . Google يكی از محبوبترين وقدرتمندترين موتورهای جستجو در اينترنت است . پس از تايپ كليد واژه موردنظر و فشردن كليد Google Search ، كليد واژه مورد نظر برای سرويس دهندهارسال می گردد . در ادامه ، با توجه به ايجاد زيرساخت اطلاعاتی لازم درسمت سرويس دهنده ، نتايج استخراج و برای شما ارسال می گردد .
    Google Suggest ، يكی از اولين نمونه برنامههائی است كه در آن از Ajax استفاده شده است .برنامه فوق دارای اينترفيسیمشابه صفحه اصلی گوگل است ( يك text box جهت تايپ كليد واژه مورد نظر بههمراه يك button جهت جستجو ) . همه چيز مشابه صفحه اصلی و قديمی گوگل استتا زمانی كه شروع به تايپ متن مورد نظر خود در text box نكرده ايد . بهموازات تايپ متن در محل مربوطه ، گوگل پيشنهادات و يا اطلاعاتی را ازسرويس دهنده دريافت و به شما ارائه می نمايد ( يك ليست از واژه ها بههمراه تعداد نتايج مربوط به هر يك ) .
    به عنوان نمونه فرض كنيد عبارت srco.ir را در بخش مربوطه تاپپ نمائيم ، بهموازات تايپ هر يك از حروف ، گوگل پيشنهادات خود را ارائه می نمايد . نحوهعملكرد Google Suggest در شكل 1 نشان داده شده است .



    شكل 1 : عملكرد برنامه Google Suggest
    Gollum
    يكیاز متداولترين موارد استفاده از Ajax ، ايجاد live search است . GoogleSuggest كه در بخش قبل به آن اشاره گرديد ، يك نمونه متداول در اين زمينهاست . تاكنون تعداد زيادی از اينگونه برنامه ها پياده سازی شده است . بهعنوان مثال می توان به برنامه Gollum اشاره كرد ، كه يك live search برای Wikipedia ( بزرگترين دايره المعارف موجود در اينترنت ) را ارائه می نمايد . نحوه عملكرد اين برنامه در شكل 2 نشان داده شده است .


    شكل 2 : عملكرد برنامه Gollum با هدف جستجو در Wikipedia

    ايجاد يك ماشين حساب مبتنی بر Ajax
    هربرنامه ای كه در آن لازم است داده برای سرويس دهنده ارسال تا پس از انجامپردازش های لازم در سمت سرويس دهنده ، نتايج برای سرويس گيرنده برگرداندهشود ، می تواند شرايط اوليه مورد نياز جهت استفاده از فناوری Ajax را داراباشد . پياده سازی يك ماشين حساب ساده يك نمونه در اين زمينه است .
    برای استفاده از ماشين حساب فوق ، كافی است دو عدد ( و يا اپراند ) را درفيلدهای مربوطه درج و در ادامه بر روی دكمه عملگر ( جمع ، تفريق ، ضرب ،تقسيم ) مورد نظر كليك نمائيم . برنامه فوق با استفاده از Ajax ، اطلاعاتخود را ( شامل اپراندها و نوع عملگر انتخابی ) برای سرويس دهنده ارسال مینمايد تا پس از انجام عمليات ، نتايج برای سرويس گيرنده برگردانده شود .تمامی عمليات بدون نياز به refresh صفحه انجام می شود . عملكرد برنامه فوقاز منظر كاربر ، شباهت بسيار زيادی به برنامه های desktop دارد.
    شكل 3 ، نحوه عملكرد برنامه فوق را نشان می دهد .



    شكل 3 : يك ماشين حساب ساده مبتنی بر فناوری Ajax

    برنامه های chat
    Ajax در هر مكانی كه به بهنگام سازی سنگين داده نياز باشد ، میتواند كارآئی فوق العاده ای داشته باشد . برنامه های چت يك نمونه متداولدر اين زمينه می باشند . در اين نوع برنامه ها ، هر يك از كاربران متنمورد نظر خود را تايپ و بلافاصله متن تايپ شده برای كاربرانی كه به سيستمlog in كرده اند ، نمايش داده می شود . Ajax يك گزينه مناسب برای اين نوعبرنامه ها می باشد ، چراكه متن نمايش داده شده همواره بهنگام شده است . بااستفاده از Ajax می توان متن را به سادگی در هر محلی از صفحه بهنگام كرد (بدون اين كه به refresh نياز باشد ) .
    PHP Free Chat ، يك نمونه از اين نوع برنامههای چت است . برنامه فوق با اتصال به سرويس دهنده پتانسيل های مورد نيازيك برنامه چت را در اختيار كاربران قرار می دهد . پس از درج يك نام میتوان به برنامه وارد شد . پس از تايپ متن مورد نظر و فشردن دكمه enter ،متن تايپ شده با استفاده از Ajax برای سرويس دهنده ارسال می گردد . درادامه ، متن فوق به همراه ساير متون تايپ شده توسط كاربران در chat boxنمايش داده می شود . شكل 4 ، نحوه عملكرد برنامه فوق را نشان می دهد .



    شكل 4 : يك برنامه چت مبتنی بر فناوری Ajax
    پردازش بر روی صفحات گسترده
    يكی ديگر از كاربردهای متداول Ajax استفاده از آن در برنامه های صفحه گسترده و يا همان spreadsheet است . برنامه Num Sumيك نمونه در اين زمينه است . با استفاده از برنامه فوق می توان يك صفحهگسترده واقعی ( بكارگيری فرمول ها و ذخيره آن بر روی سرويس دهنده مورد نظر) را ايجاد كرد . به موازات درج داده ، فرآيند بهنگام سازی بدون نياز بهانجام يك refresh توسط مرورگر انجام خواهد شد . شكل 5 ، نحوه عملكردبرنامه فوق را نشان می دهد .



    شكل 5 : يك برنامه صفحه گسترده مبتنی بر فناوری Ajax
    استفاده از سايت آمازون
    استفاده از محتويات موجود بر روی سايت آمازون ، يك نمونه ديگراز برنامه های وب مبتنی بر فناوری Ajax را نشان می دهد . با استفاده از برنامه فوقمی توان تمامی محتويات منتشر شده بر روی سايت آمازون را با يك ساختاردرختی مشاهده كرد .با كليك بر روی هر گره می توان محصولات مربوط به آن رامشاهده كرد . شكل 6 ، نحوه عملكرد برنامه فوق را نشان می دهد .



    شكل 6 : مشاهده محتويات سايت آمازون به كمك يك برنامه وب مبتنی بر فناوری Ajax
    log in توسط Ajax
    با استفاده از Ajax می توان فرآيند log in به يك سايت را ساده تر كرد . به عنوان نمونه با مراجعه به آدرس www.jamesdam.com/ajax_login/login.htmlصفحه ای را مشاهده خواهيم كرد كه اجازه log in اتوماتيك را با استفاده ازAjax به كاربران می دهد . در صورتی كه يك نام و رمز عبور صحيح توسط كاربردرج نشود و وی در هر مكانی از صفحه كليك نمايد ، يك پيام خطاء نمايش دادهخواهد شد . به عبارت ديگر ، در صورتی كه كاربر نام و رمز عبور صحيح خود راوارد نمايد و در هر مكانی از صفحه كليك نمايد ، امكان log in به سايت دراختيار وی گذاشته می شود . شكل 7 عملكرد برنامه فوق را نشان می دهد .



    شكل 7 : فرآيند log in به يك سايت با استفاده از فناوری Ajax
    Drag و Drop با Ajax
    به موازات افزايش چشمگير شباهت برنامه های وب و برنامه هایdesktop ، هم اينك می توان بسياری از عملياتی را كه در برنامه های desktopانجام می شود در برنامه های وب نيز انجام داد . فرآيند موسوم به drag& drop نمونه ای در اين زمينه است كه بكارگيری آن در برخی برنامه هامی تواند كار را برای كاربران ساده تر نمايد . سرويس دهنده بطور اتوماتيكاز آيتم انتخاب شده توسط كاربر آگاه شده و متناسب با آن از خود واكنش نشانخواهد داد . با مراجعه به آدرس [برای مشاهده لینک ها شما باید عضو سایت باشید برای عضویت در سایت بر روی اینجا کلیک بکنید] ، می توان يك نمونه از اين نوع برنامه ها را مشاهده كرد.
    زمانی كه يك magnet را به يك مكان جديد drag می نمائيد ، مكان جديد بااستفاده از تكنولوژی Ajax برای سرويس دهنده ارسال و در آن مكان داده ذخيرهمی گردد . در ادامه ، ساير افرادی كه صفحه فوق را مشاهده خواهند كرد ، آنرا در موقعيت و يا مكانی خواهند يافت كه قبلا" شما آن را مستقر كرده ايد ،مگر اين كه موقعيت آن توسط ساير كاربران تغيير يافته باشد . شكل 8 عملكردبرنامه فوق را نشان می دهد .



    شكل 8 : عمليات Drag & Drop به كمك فناوری Ajax
    يكیاز متداولترين موارد استفاده از عمليات Drag & Drop به همراه Ajax ،پياده سازی Shopping cart است . زمانی كه خريدار قصد دارد يك آيتم را بهيك shopping cart اضافه نمايد ، می بايست كاربر در چندين صفحه حركت نمايدتا در نهايت با كليك بر روی دكمه Add to Cart كالای انتخاب شده را به سبدخريد اضافه نمايد و مجددا" برای دنبال نمودن فرآيند خريد به صفحات قبلبرگردد . با استفاده از فناوری Ajax می توان به سادگی كالای مورد نظر خودرا انتخاب و در ادامه با عمليات Drag & Drop آن را در سبد خريد قرارداد . زمانی كه با روش Drag & Drop يك آيتم به يك سبد خريد اضافه میگردد ، سرويس دهنده از اين موضوع مطلع شده و مبلغ كالای خريداری شده را بهمجموع كالاهای خريداری شده موجود در سبد خريد اضافه می نمايد .
    تغيير صفحات وب به صورت پويا
    يكی از حوزه هائی كه Ajax در آن توانمند و حرف های زيادی برای گفتن دارد ،بهنگام سازی و يا تغيير محتويات يك صفحه وب به صورت پويا است . تاكنونهزاران نوع از اين برنامه ها در طی ساليان اخير و به كمك فناوری Ajaxپياده سازی شده است .
    SaneBull Market Monitor يك نمونه از كاربردAjax به منظور تغيير محتويات يك صفحه را نشان می دهد . همزمان با مشاهدهصفحه ، اطلاعات مندرج در آن بهنگام و آخرين وضعيت سهام در اختيار مخاطبانقرار داده می شود . شكل 9 ، نحوه عملكرد برنامه فوق را نشان می دهد .



    شكل 9 : بهنگام سازی محتويات يك صفحه وب به كمك فناوری Ajax
    برنامههای واژه پرداز online يكی ديگر از نمونه كاربردهای Ajax در عرصه ارائهسرويس های online می باشند . يكی از اين نوع برنامه ها را می توانيد ازطريق آدرس [برای مشاهده لینک ها شما باید عضو سایت باشید برای عضویت در سایت بر روی اینجا کلیک بکنید] مشاهده نمائيد .
    تعامل با نقشه ها
    Google Map ، يكی از اولين برنامههائی است كه در آن از Ajax استفاده شده است . پس از تمركز بر روی يك نقطه، اطلاعات آن نقطه خاص از سرويس دهنده بازيابی و با يك فرمت مناسب نمايشداده می شود . شكل 10 ، نحوه عملكرد برنامه فوق را نشان می دهد .



    شكل 10 : تعامل با نقشه ها به كمك فناوری Ajax
    تاكنون سايت های متعددی با الهام از Google Maps ايجاد شده اند . يك نمونه آن را می توانيد در آدرس www.gtraffic.info مشاهده نمائيد كه در آن اطلاعات ترافيك حمل و نقل كشور انگلستان در اختيار كاربران قرار داده می شود
    برنامه های نقشه online تنها برنامه های Ajax نمی باشند كه از Pop-up استفاده نمايند . به عنوان نمونه با مراجعه به آدرس www.netflix.com/Top100سايـتی را مشاهده خواهيد كرد كه با قرار گرفتن بر روی عنوان يك فيلم ،اطلاعات مربوط به آن نمايش داده می شود ( بطور اتوماتيك داده از سرويسدهنده و با استفاده از Ajax بازيابی می گردد و در ادامه در يك pop upنمايش داده می شود ) .
    شكل

    E-mail مبتنی بر Ajax
    يكی ديگر از موارد استفاده از Ajax ، حمايت آن از برنامه هایپست الكترونيكی مبتنی بر مرورگرها است . يك نمونه آن را می توانيد در آدرسhttp://demo.nextapp.com/Email/app مشاهده نمائيد .
    مشاهده نامه های الكترونيكی از طريق برنامه های وب مبتنی بر مرورگر دارایچالش های مختص به خود است . در اين نوع برنامه ها پس از مشاهده ليستی ازنامه های دريافتی با كليك بر روی هر يك از آنها به صفحه ای هدايت خواهيمشد كه در آن متن نامه الكترونيكی جهت خواندن در اختيار ما قرار داده میشود . پس از اتمام مطالعه يك نامه ، می بايست جهت مطالعه ساير نامه هایدريافتی به ليست نامه های الكترونيكی مراجعه كرد .
    بكارگيری فناوری Ajax در برنامه های پست الكترونيكی باعث تغيير اساسیرفتار اينگونه برنامه ها شده است . در اين نوع برنامه ها ، پس از مشاهدهليستی از برنامه ها ، با كليك بر روی يك نامه دريافتی بطور اتوماتيك نامهمورد نظر دانلود و برای شما نمايش داده می شود بدون اين كه لازم باشدمرورگر refresh گردد . محتويات نامه دريافتی در انتهای صفحه نمايش داه میشود . شكل 11 ، نحوه عملكرد برنامه فوق را نشان می دهد .



    شكل 11 : يك برنامه وب پست الكترونيكی پياده سازی شده به كمك فناوری Ajax
    Gmail، يكی از سرويس های رايگان گوگل است كه در آن از فناوری Ajax در بخش هایمتعددی استفاده شده است . زمانی كه كاربران برای اولين مرتبه به برنامهفوق log in می نمايند ، يك engine رابط كاربر درون يك iframes لود می شود. در ادامه ، تمامی درخواست ها به سرويس دهنده از طريق اين engine و بهكمك شی XMLHttp انجام می شود.
    انتشار اخبار به كمك Ajax
    Yahoo! News ، يك نمونه ديگر از بكارگيری فناوری Ajax درمشاهده اخبار را نشان می دهد . پس از استقرار موس بر روی يك عنوان خبری ،خلاصه خبر و يك تصوير مرتبط با آن در يك كادر كوچك نمايش داده می شود .اطلاعات فوق به صورت پويا و به كمك شی XMLHttp از سرويس دهنده وب بازيابیو نمايش داده می شود . شكل 11 ، نحوه عملكرد برنامه فوق را نشان می دهد .



    شكل 12 : انتشار خبر به كمك فناوری Ajax
    خلاصه
    با اين كه Ajax دارای عمری كوتاه است ولی در زمانی اندكتوانسته است در كانون توجه طراحان و پياده كنندگان برنامه های وب و سرويسهای online قرار بگيرد . پياده سازی هزاران برنامه ، دليلی روشن بر موفقيتAjax است . قطعا" در آينده ای نه چندان شاهد حضور موفقيت آميز برنامه هایمبتنی بر Ajax در ساير عرصه های فناوری خواهيم بود .
    در اين مقاله به ذكر نمونه هائی اندك از كاربرد Ajax در برنامه های وباشاره گرديد با اين هدف كه بتوان در عمل كارآئی اين فناوری را مشاهده نمود. شناخت منطقی و اصولی هر فناوری به ما كمك خواهد كرد تا از آن به درستی ودر جايگاه مناسب استفاده نمائيم .
    در بخش چهارم به بررسی فريمورك های ارائه شده جهت بكارگيری فناوری Ajax خواهيم پرداخت .
    منبع : [برای مشاهده لینک ها شما باید عضو سایت باشید برای عضویت در سایت بر روی اینجا کلیک بکنید]

  4. #4
    کاربرسایت PARS آواتار ها
    تاریخ عضویت
    ۸۷-۰۲-۲۵
    نوشته ها
    666
    سپاس ها
    0
    سپاس شده 0 در 0 پست

    Re: Ajax : تحولی بزرگ در عرصه وب

    Ajax : تحولی بزرگ در عرصه وب ( بخش چهارم )

    آنچه تاكنون گفته شده است :
    بخش اول
    تاثير متقابل وب و نرم افزار بر يكديگر
    بخش دوم Ajax و فناوری های مرتبط با آن بخش سوم بررسی نمونه برنامه های مبتنی بر Ajax
    دراين بخش قرار بود كه در رابطه با فريمورك های مختلف ارائه شده جهتبكارگيری فناوری Ajax آشنا شويم . ولی به دليل درخواست تعداد زيادی ازخوانندگان مبنی بر آشنائی بيشتر با معماری Ajax، برنامه نويسی غيرهمزمان در برنامه های وب و شی XMLHttpRequest ، اين بخشرا به بررسی موارد فوق اختصاص داديم تا علاقه مندان بتوانند قبل ازپرداختن به اصل موضوع با برخی مفاهيم كليدی و مهم بيشتر آشنا شوند .
    مقدمه
    Ajax يك رويكرد و يا الگوی جديد برای پياده سازی برنامه های وباست كه در آن از اسكريپت های سمت سرويس گيرنده برای مبادله داده با سرويسدهنده وب استفاده می گردد. رويكرد فوق باعث می شود كه صفحات وب بدون نيازبه refresh كامل بتوانند بطور پويا بهنگام گردند ( رويائی برای پيادهكنندگان برنامه های وب ) . مهمترين دستاورد رويكرد فوق ، ارتباط بدون وقفهو پيوسته كاربران با برنامه های وب است .
    برخی از كارشناسان بر اين اعتقاد هستند كه رويكرد فوق بيش از آن كه يكالگو باشد يك فناوری است . در واقع ، Ajax تركيبی از مجموعه فناوری هایمرتبط به هم است كه از آنها با يك نگرش جديد در جهت توليد نسل جديدی ازبرنامه های وب استفاده می گردد .
    نام بردن از فناورهائی كه در Ajax از آنها استفاده می گردد كار مشكلی نيستولی مهم اين است كه بدانيم اين فناورها در كنار يكديگر به چه صورت كار میكنند و هر يك از آنها در Ajax دارای چه مختصاتی است .شكل 1 ، نحوه تعامل وارتباط اين فناوری ها را از منظر مرورگر نشان می دهد .


    شكل 1 : عناصر Ajax
    جاوااسكريپت در Ajax دارای يك نقش محوری و تعيين كننده است و می توان آن را بهمنزله يك نيروی چسبنده در نظر گرفت كه ساير فناوری ها را با هم مرتبط مینمايد . زمانی كه يك برنامه به داده نياز داشته باشد ، از شیXMLHttpRequest به منظور ايجاد درخواست به سرويس دهنده استفاده می گردد .پس از برگرداندن داده توسط سرويس دهنده ، از فناورهای DOM ( برگرفته شدهاز Document Object Model ) و CSS ( برگرفته شده از cascading stylesheets ) برای بهنگام سازی رابط كاربر مرورگر به صورت پويا استفاده میگردد .
    برنامه نويسی وب غيرهمزمان
    حرف A موجود در Ajax از Asynchronous گرفته شده است كه در زبانفارسی به غيرهمزمان و يا ناهمگام ترجمه می شود و بيانگر يكی از قابليت هایمهم و كليدی الگوی برنامه نويسی Ajax است .
    در برنامه های وب سنتی ، تعامل كاربر با برنامه بطور پيوسته نبوده و درمقاطع زمانی خاصی لازم است كاربر در انتظار اتمام يك عمليات باشد . زمانیكه كاربر عمليات خاصی نظير كليك بر روی دكمه موجود بر روی يك فرم را انجاممی دهد ، يك درخواست مبتنی بر پروتكل HTTP برای سرويس دهنده وب ارسال میگردد . در ادامه ، سرويس دهنده درخواست را پردازش ( به عنوان نمونه ،انجام برخی محاسبات و يا عمليات مرتبط با بانك های اطلاعاتی ) و نتايجتوليد شده را در قالب يك صفحه وب با محتويات جديد برای سرويس گيرنده ارسالمی نمايد .
    نحوه عملكرد صفحات وب متاثر از ماهيت stateless بودن پروتكل HTTP است . باتوجه به اين كه تمامی منطق برنامه معمولا" بر روی سرويس دهنده قرار میگيرد ، نقش مرورگرها صرفا" نمايش بخش رابط كاربر و يا اصطلاحا" اينترفيسبرنامه است . سرويس دهنده ، چرخه حيات يك صفحه وب را بطور كامل طی مینمايد و برای مرورگر تگ های HTML ، كدهای CSS و ساير منابع مورد نياز راجهت بازخوانی و نمايش مجدد صفحه ارسال می نمايد . ماهيت فرآيند فوق بگونهای است كه در دراز مدت نمی تواند رضايت خاطر كامل كاربران را حداقل در سطحبخش رابط كاربر برنامه تامين نمايد . در اين مدل كاربران از يك الگویstop-start-stop تبعيت می نمايند . كاربران در برخی موارد و با توجه بهشرايط حاكم بر برنامه بطور موقت و از روی ناچار ارتباط خود را با برنامهاز دست داده و می بايست در انتظار بهنگام سازی صفحه وب درخواستی بمانند .
    شكل 2 ، نحوه عملكرد برنامه های وب در يك فرآيند همزمان را نشان می دهد .



    شكل 2 : نحوه عملكرد برنامه های وب در يك فرآيند همزمان
    ( عدم تعامل كاربر با برنامه در زمان درخواست های HTTP )
    درASP.NET زمانی كه يك صفحه داده را برای خود و يا حتی صفحه ای ديگر ارسالمی نمايد ، يك postback اتفاق می افتد . در حين اين فرآيند ، وضعيت جاریصفحه به همراه كنترل های موجود بر روی آن جهت پردازش برای سرويس دهندهارسال می گردند . مكانيزم postback با هدف تامين خواسته هائی نظير نگهداشتوضعيت صفحه و كنترل های سرويس دهنده موجود بر روی آن دنبال می شود .فرآيند فوق گرچه در نهايت می تواند منجر به refresh صفحه وب و نمايشمحتويات جديد برای كاربر گردد ولی هزينه انجام آن زياد خواهد بود چراكهاولا" يك حجم داده می بايست برای سرويس دهنده ارسال گردد و ثانيا" ارتباطمنطقی كاربر با برنامه از بين خواهد رفت .

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


    شكل 3 : نحوه عملكرد برنامه های وب در يك فرآيند غيرهمزمان
    (ارسال درخواست های HTTP از طريق Ajax engine برای سرويس دهنده)
    در هسته Ajax engine ، شی مهم و كليدی XMLHttpRequest قرار دارد كه در ادامه با آن بيشتر آشنا می شويم .
    شی XMLHttpRequest
    شیXMLHttpRequest به منزله قلب برنامه نويسی Ajax مطرح می گرددچراكه شی فوق باعث می شود جاوا اسكريپت بتواند درخواست هائی را ايجاد تابرای سرويس دهنده ارسال و نتايج ارسالی از سرويس دهنده را نيز پردازشنمايد .
    شی فوق اولين مرتبه و به صورت يك شی اكتيوايكس در Internet Explorer 5عرضه گرديد و هم اينك از آن در اكثر مرورگرها حمايت می گردد . سايرمرورگرها نظير Safari ، Opera ، Mozilla و فايرفاكس پتانسيل هایXMLHttpRequest را به صورت يك شی ذاتی جاوا اسكريپت ارائه كرده اند ( درIE 7.0 شی فوق بطور ذاتی در جاوا اسكريپت تعبيه شده است ) .
    با توجه به اين كه تاكنون نسخه های مختلفی از شی فوق در مرورگرها پيادهسازی شده است ، پياده كنندگان می بايست كد لازم به منظور تشخيص نوع شی فوقرا در زمان ايجاد يك نمونه از آن را در برنامه خود پيش بينی نمايند . برایتعيين نسخه در دسترس شی XMLHttpRequest می توان از روشی موسوم به " تشخيصشی " استفاده كرد .

    ايجاد يك نمونه از شی XMLHttpRequest با توجه به نوع مرورگر
    var xmlHttp = null;
    if (window.XMLHttpRequest) { //IE7 , Mozilla ,...
    xmlHttp = new XMLHttpRequest();
    } else if (window.ActiveXObject) {
    try{
    xmlHttp = new ActiveXObject("Microsoft.XMLHTTP"); //IE 5.x, 6
    }
    catch(e) {}
    }
    مثال
    برای آشنائی با نحوه عملكرد شی فوق و برنامه نويسی وبغيرهمزمان ، در ادامه به بررسی يك نمونه مثال ساده خواهيم پرداخت . فرضكنيد قصد داريم يك درخواست غيرهمزمان به يك منبع موجود بر روی سرويس دهنده(در اين مثال خاص يك صفحه html كه حاوی يك متن ساده است ، صفحهArticleSummery.htm ) را ايجاد نمائيم . صفحه فوق يك صفحه وب با حداقلاطلاعات و شامل يك متن ايستا است .

    صفحه ArticleSummery.htm
    <htmlxmlns="http://www.w3.org/1999/xhtml"dir="rtl">
    <
    head>
    <metacontent="text/html; charset=utf-8" http-equiv="content-type"/>
    <title>تست برنامه نويسی وب غيرهمزمان </title>
    </
    head>
    <
    bodystyle="font-family: Tahoma;">
    <div>در اين مقاله با برنامه نويسی وب همزمان و غيرهمزمان آشنا شديم </div>
    </
    body>
    </
    html>
    مسئوليت ارسال يك درخواست غيرهمزمان به تابع SendRequest سپرده شده است .
    ارسال يك درخواست غيرهمزمان
    كد
    مرحله
    function sendRequest(url) {
    if (xmlHttp) {
    xmlHttp.open("GET", url, true); // true = async
    1
    فعال كردن ارتباط غيرهمزمان
    xmlHttp.onreadystatechange = onCallback;
    2
    نسبت دهی تابع callback
    xmlHttp.setRequestHeader('Content-type','application/x-www-form-urlencoded'); xmlHttp.send(null);
    }
    }
    3
    ارسال درخواست غيرهمزمان
    توضيحات

    • [/*:m:kk8zq3qt]
    • متد sendRequest ، يك پارامتر كه در واقع URL مربوطه به درخواست HTTP است را دريافت می نمايد . [/*:m:kk8zq3qt]
    • مرحلهاول : يك ارتباط غيرهمزمان ايجاد می گردد ( در نظر گرفتن مقدار true بهعنوان سومين پارامتر در زمان فعال كردن ارتباط نشان دهنده يك ارتباطغيرهمزمان است ). [/*:m:kk8zq3qt]
    • مرحلهدوم : پس از مقداردهی اوليه ارتباط مورد نظر ، به خصلت onreadystatechangeشی XMLHttpRequest يك تابع محلی با نام onCallback نسبت داده می شود .توجه داشته باشيد كه فراخوانی تابع فوق به صورت غيرهمزمان است . تابعCallback مشخص می نمايد كه چه زمانی درخواست تكميل و يا بهنگام شده است . [/*:m:kk8zq3qt]
    • مرحلهسوم : پس از مشخص كردن نوع محتوا در هدر درخواست ، با استفاده از متد Sendشی XMLHttpRequest ، درخواست HTTP برای سرويس دهنده ارسال می گردد . [/*:m:kk8zq3qt]
    فراخوانی تابع onCallback
    هر مرتبه ای كه وضعيت ready تغيير می يابد ، از تابع callbackجهت ايجاد يك درخواست غيرهمزمان استفاده می گردد . در مرحله نهائی ، وضعيتبررسی و بخش رابط كاربر به همراه محتويات برگردانده شده از صفحهArticleSummery.htm ، بهنگام می گردد.

    فراخوانی تابع oncallback
    كد
    مرحله
    function onCallback() {
    if (xmlHttp.readyState == 4) {
    1
    بررسی تكميل عمليات
    if (xmlHttp.status == 200){
    2
    مقدار 200 نشان دهنده انجام موفقيت آميز عمليات است
    var r = document.getElementById('results');
    r.innerHTML = xmlHttp.responseText;
    }
    3
    نمايش نتايج
    else {
    alert('Error: ' + xmlHttp.status);
    }
    توضيحات

    • [/*:m:kk8zq3qt]
    • وضعيت درخواست از طريق خصلت readyState برگردانده می شود . [/*:m:kk8zq3qt]
    • مرحله اول : در صورتی كه مقدار خصلت readyState شی XMLHttpRequest برابر با مقدار 4 باشد ، درخواست به اتمام رسيده است . [/*:m:kk8zq3qt]
    • مرحلهدوم : در ادامه ، پاسخ برگردانده شده از سرويس دهنده بررسی می شود تا ايناطمينان حاصل گردد كه همه چيز با موفقيت انجام شده است .مقدار كد وضعيت200 مربوط به پروتكل HTTP ، نشان دهنده اين موضوع است كه درخواست باموفقيت انجام شده است .[/*:m:kk8zq3qt]
    • مرحله سوم : در نهايت ، خصلت innerHTML مربوط به عنصر span متاثر از محتويات برگردانده شده ، بهنگام می گردد . [/*:m:kk8zq3qt]
    كد زير ، محتويات صفحه Ajax1.aspx را بطور كامل نشان می دهد .
    صفحه Ajax1.aspx
    <%@Page Language="VB"Culture="fa-IR" %>
    <scriptrunat="server">
    </
    script>
    <
    html xmlns="http://www.w3.org/1999/xhtml"dir="rtl">
    <
    headid="Head1"runat="server">
    <
    title>نحوه استفاده از شی XMLHttpRequest</title
    >
    </
    head>
    <
    bodystyle="font-family: Tahoma">
    <formid="form1"runat="server">
    <div>
    <spanid="results">بارگذاری صفحه ...</span>
    </div>
    </form>
    <
    scripttype="text/javascript">
    var
    xmlHttp = null;
    window.onload =
    function() {
    loadXmlHttp();
    sendRequest(
    "ArticleSummery.htm");
    }
    function loadXmlHttp() {
    if (window.XMLHttpRequest) { // IE7, Mozilla, Safari, Opera, etc.
    xmlHttp = new XMLHttpRequest();
    }
    else if (window.ActiveXObject) {
    try{
    xmlHttp =
    new ActiveXObject("Microsoft.XMLHTTP"); // IE 5.x and 6
    }
    catch (e){}
    }
    }
    function sendRequest(url) {
    if (xmlHttp) {
    xmlHttp.open("GET", url, true); // true = async
    xmlHttp.onreadystatechange = onCallback;
    xmlHttp.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
    // Send request without any additional parameters
    xmlHttp.send(null);
    }
    }
    function onCallback() {
    if (xmlHttp.readyState == 4) {
    if (xmlHttp.status == 200){
    var r = document.getElementById('results');
    r.innerHTML = xmlHttp.responseText;
    }
    else { // HTTP error
    alert(
    'Error: ' + xmlHttp.status);
    }
    }
    }
    </script>
    </body>
    </
    html>
    شكل 4 خروجی مثال فوق را نشان می دهد .

    شكل 4 : ايجاد يك درخواست Http غيرهمزمان توسط شی XMLHttpRequest
    دراين مثال با نحوه ايجاد يك درخواست HTTP غيرهمزمان توسط شی XMLHttpRequestبه صفحه ديگر موجود بر روی سرويس دهنده آشنا شديم . پس از اتمام درخواست ،كاربران صفحه نهائی را كه محتويات عناصر رابط كاربر موجود در آن (يك span) به صورت پويا بهنگام شده اند ، مشاهده خواهند كرد .
    خلاصه
    در اين مقاله با برنامه نويسی وب همزمان و غيرهمزمان و نحوهعملكرد شی XMLHttpRequest آشنا شديم . هدف از بيان موارد فوق ، صرفا"آشنائی با الگوی برنامه نويسی وب مبتنی بر Ajax بود . تمامی داستان به ايننقطه ختم نمی شود و در مقالات آتی به ساير پتانسيل های Ajax به منظورپياده سازی برنامه های وب اشاره خواهيم كرد .
    منبع : [برای مشاهده لینک ها شما باید عضو سایت باشید برای عضویت در سایت بر روی اینجا کلیک بکنید]

  5. #5
    کاربرسایت PARS آواتار ها
    تاریخ عضویت
    ۸۷-۰۲-۲۵
    نوشته ها
    666
    سپاس ها
    0
    سپاس شده 0 در 0 پست

    Re: Ajax : تحولی بزرگ در عرصه وب

    Ajax : تحولی بزرگ در عرصه وب ( بخش پنجم )

    آنچه تاكنون گفته شده است :


    بخش اول
    تاثير متقابل وب و نرم افزار بر يكديگر
    بخش دوم Ajax و فناوری های مرتبط با آن بخش سوم بررسی نمونه برنامه های مبتنی بر Ajax بخش چهارم برنامه نويسی غيرهمزمان در برنامه های وب
    پساز آشنائی با اصول اوليه Ajax در طی چهار مقاله ، پياده كنندگانی كه علاقهمند به استفاده از اين فناوری در برنامه های وب می باشند اين پرسش را مطرحمی نمايند كه آيا برای استفاده از پتانسيل های Ajax می بايست از يكفريمورك و يا toolkit خاص استفاده كرد ؟ در ادامه ضمن پاسخ به اين سوال ،به بررسی معماری ASP.NET Ajax خواهيم پرداخت .
    چرا به يك فريمورك Ajax نياز داريم ؟ بدونبهره گيری از پتانسيل های يك toolkit و يا يك فريمورك ، پياد ه سازیبرنامه های مبتنی بر Ajax كار ساده ای نخواهد بود و پياده كنندگان بامسائل متعددی مواجه خواهند شد :

    • [/*:m:1al756o9]
    • سازگاری بين مرورگرها: گذشته از پياده سازی نسخه های متعدد و مختلف از شی XMLHttpRequest ، هرمرورگر يك نسخه متفاوت از DOM را پياده سازی كرده است . به روز نگه داشتنتغييرات بين مرورگرها و مديريت تشخيص مرورگرها می تواند يك فرآينده مشكل وخسته كننده را برای پياده كنندگان به دنبال داشته باشد .يكی از اهداف مهميك toolkit و يا فريمورك ، تفكيك پيچيدگی ها و تفاوت ها است تا پيادهكنندگان بتوانند با بكارگيری مجموعه ای از امكانات رابط برنامه نويسی (API ) ، عمليات مشابه و يكسانی را انجام دهند . [/*:m:1al756o9]
    • ضرورت درك عميق تر از جاوا اسكريپت: جاوا اسكريپت ذاتا" يك زبان پيچيده نيست ، گرچه ، تعداد زيادی از پيادهكنندگان برنامه های وب اين عقيده را ندارند. جاوا اسكريپت ويژگی هائی نظيرشی گراء و يا Type safe را كه بتواند انتظار برنامه نويسان را تامين نمايد، ارائه نمی نمايد . مفاهيمی نظير توارث ، اينترفيس ها و رويدادها را میتوان در جاوا اسكريپت شبيه سازی كرد ولی پياده سازی آنها برای پيادهكنندگان كار مشكلی خواهد بود . اشكال زدائی و عدم حمايت از زبان هایاسكريپت نويسی سمت سرويس گيرنده در محيط های IDE ( برگرفته شده ازintegrated development environments ) نيز به پيچيدگی كار می افزايد . [/*:m:1al756o9]
    باتوجه به موارد فوق ، توصيه می گردد در زمان پياده سازی برنامه های وبمبتنی بر Ajax از يك فريمورك و يا toolkit استفاده شود و پياده كنندگانخود را درگير برخی كارهای پيچيده و تكراری ننمايند .
    ASP. NET Ajax يكی از فريمورك های ارائه شده در اين خصوص است كه در ادامه با معماری آن بيشتر آْشنا می شويم .

    معماری فريمورك ASP. NET Ajax
    فريمورك ASP. NET Ajax ، به پياده كنندگان اين امكان را می دهدكه بتوانند برنامه های وب قدرتمندتر ، با توان پاسخگوئی بيشتر و سازگار بامرورگرهای مختلف را ايجاد نمايند . در نگاه اول ممكن است اين گونه برداشتشود كه فريمورك يك كتابخانه Ajax است . با اين كه استنباط فوق درست استولی تصويری واقعی از آنچه وجود دارد را در ذهن ايجاد نمی كند.
    با بررسی معماری فريمورك فوق و آشنائی با نحوه عملكرد هر يك از عناصرموجود در اين ساختار ، با قابليت های فريمورك ASP. NET Ajax بيشتر خواهيمشد .
    شكل 1 ، ساختار معماری فريمورك ASP. NET Ajax را نشان می دهد . اولين چيزیكه در شكل فوق مشهود است ، پوشش اين فريمورك در دو سمت سرويس گيرنده وسرويس دهنده است . علاوه بر مجموعه ای از كتابخانه های سمت سرويس گيرنده وعناصر ، با مجموعه ای از امكانات در سمت سرويس دهنده مواجه هستيم كه امكانبكارگيری آنها توسط كنترل های سرويس دهنده ASP. NET و سرويس ها وجود دارد.





    شكل 1 : ساختار معماری فريمورك ASP. NET Ajax
    فريمورك سمت سرويس گيرنده
    يكی از نكات جالب در ارتباط با فريمورك سمت سرويس گيرنده ، عدموابستگی كتابخانه مركزی به عناصر سرويس دهنده است . از كتابخانه فوق میتوان جهت پياده سازی برنامه های نوشته شده توسط PHP و يا ColdFusion وساير زبان های برنامه نويسی و يا پلت فرم ها نيز استفاده كرد .
    با توجه به انعطاف پذيری معماری فوق ، می توان آن را بطور منطقی به دو بخشتقسيم كرد : فريمورك سرويس دهنده و فريمورك سرويس گيرنده تقسيم نمود .
    آگاهی از نحوه عملكرد معماری فوق در سمت سرويس گيرنده ، برای پيادهكنندگان سمت سرويس دهنده نيز ضروری است چراكه اين بخش آغازگر حيات يك صفحهوب می باشد .

    Microsoft Ajax Library
    در هسته فريمورك سمت سرويس دهنده Microsoft Ajax Library قراردارد كه از آن با نام كتابخانه مركزی و يا هسته نام برده می شود .اينكتابخانه شامل مجموعه ای از فايل های جاوا اسكريپت است كه می توان از آنهاصرفنظر از ويژگی های سرويس دهنده استفاده كرد . در ادامه به بررسی هر يكاز اجزاء و يا لايه های كتابخانه فوق خواهيم پرداخت .
    كار خود را با بررسی لايه Type system كه زيربنای تمامی لايه های ديگر است، آغاز می نمائيم . ( در نسخه های قبلی ASP. NET Ajax با كد نام Atlas ،به كتابخانه مركزی Client Script Library گفته می شد ) .


    • [/*:m:1al756o9]
    • Type System: هدف از لايه فوق ، معرفی مفاهيم برنامه نويسی شی گراء نظير كلاس ها ،توارث ، اينترفيس ها و event handling برای جاوا اسكريپت است . اين لايههمچنين نوع های موجود جاوا اسكريپت را توسعه می دهد . مثلا" نوع String وArray در جاوا اسكريپت توسعه يافته اند تا قابليت هائی مشابه را برایپياده كنندگان برنامه های وب ASP. NET ايجاد نمايند . type system اساسكار ساير اجزاء اين كتابخانه را فراهم می نمايد .
      [/*:m:1al756o9]
    • Component:در لايه بعدی كتابخانه مركزی ، لايه component قرار دارد كه بر رویزيرساخت type system ايجاد شده است . لايه فوق عمليات حياتی و مهمی رابرای كتابخانه مركزی انجام می دهد . اين لايه امكانات حمايتی لازم برایسريال سازی JSON ( برگرفته شده از JavaScript Object Notation ) ،ارتباطات شبكه ای ، محلی سازی ، تعامل با DOM ( برگرفته شده از DocumentObject Model ) و سرويس هائی نظير تائيد و پروفايل را برای برنامه هایASP.NET ارائه می نمايد . اين لايه همچنين ، امكان توليد و ايجاد ماژولهائی با قابليت استفاده مجدد را كه می توان آنها را در گروه هائی به عنوانكنترل ها و رفتارها تقسيم نمود ، فراهم می نمايد .
      [/*:m:1al756o9]
    • Application: لايه فوق بالاترين لايه در كتابخانه مركزی است كه می توان برای آن از يكعنوان تشريحی و توصيفی بهتر استفاده كرد : Application model . همانندچرخه حيات يك صفحه در ASP.NET ، اين لايه يك مدل برنامه نويسی مبتنی بررويداد را ارائه می نمايد كه شما می توانيد از آن به منظور كار با عناصرDOM ، عناصر نرم افزاری و چرخه حيات يك برنامه در مرورگر استفاده نمائيد .[/*:m:1al756o9]
    HTML ، جاوا اسكريپت و اسكريپت XML
    صفحات وب مبتنی بر Ajax در ASP. NET با استفاده از HTML ، جاوااسكريپت و يك گرامر تعريفی مبتنی بر XML كه به آن XML script گفته می شود، نوشته می گردند . بدين ترتيب پياده كنندگان دارای گزينه های متعددی براینوشتن كد صفحات وب در سمت سرويس گيرنده می باشند . می توان كد را به صورتاخباری و با استفاده از XML Script و يا به صورت دستوری با جاوا اسكريپتپياده سازی كرد . عناصر تعريف شده در XML Script شامل يك تگ اسكريپت جديدبه صورت زير می باشند .


    کد:
    <script type="text/xml-script">




    مرورگرقادر به تشخيص تگ Script است ولی دارای يك مكانيزم برای پردازش نوعxml-script نمی باشد . در مقابل ، فايل های جاوا اسكريپت از فريموركASP.NET Ajax می توانند اسكريپت را تفسير و يك نمونه از عناصر و كنترل هایموجود بر روی صفحه را ايجاد نمايند . كد زير ، نحوه استفاده از XML Scriptبه منظور نمايش يك پيام پس از استقرار صفحه در حافظه مرورگر را نشان میدهد .




    کد:
    XML-Script : گزينه ای برای پياده سازی صفحات مبتنی بر Ajax <script type="text/xml-script"> <pagexmlns="http://schemas.microsoft.com/xml-script/2005"><components> <application load="page_load" /></components> </page> </script> <scripttype="text/javascript"> function page_load(sender, e) { alert("Hellofrom XML-Script!"); } </script>




    درمثال فوق ، يك تابع نوشته شده به زبان جاوا اسكريپت با نام Page_load بهصورت تعريفی به رويداد Load در چرخه حيات صفحه نسبت داده شده است . بااجرای اين صفحه ، تابع Page_Load فراخوانده می شود تا يك پيام برای سرويسگيرنده نمايش داده شود .
    شايد برای شما اين سوال مطرح شده باشد كه چرا در مقابل جاوا اسكريپت میبايست از XML Script استفاده كرد ؟ ( عكس اين سوال نيز می تواند مطرح شود) . در پاسخ می توان به تمايل پياده كنندگان و توانمندی آنها اشاره كرد .برخی از پياده كنندگان ترجيح می دهند كه از يك زبان نشانه گذاری در مقابلاسكريپت استفاده نمايند . در مقابل تعداد ديگری از پياده كنندگان استفادهاز زبان جاوا اسكريپت را در مقابل يك زبان نشانه گذاری ، ترجيح می دهند .به هر حال از دو رويكرد فوق می توان استفاده كرد و هر يك دارای مزايا ومحدوديت های مختص به خود می باشند.

    ASP.NET AJAX service proxies
    فريمورك در سمت سرويس گيرنده قابليت فراخوانی سرويس های وب رااز طريق جاوا اسكريپت و به كمك مجموعه ای از پروكسی های سمت سرويس گيرندهكه از طريق سرويس دهنده ايجاد شده اند ، فراهم می نمايد .پروكسی ها را میتوان به منزله يك مرجع وب در كد مديريت يافته دات نت در نظر گرفت . يكپروكسی كلاسی است كه به عنوان يك اينترفيس برای آيتم ديگر عمل می نمايد .در اين حالت ، يك سرويس وب .

    جمع بندی فريمورك سمت سرويس گيرنده
    تا اين جا يك ديد كلی و اوليه نسبت به فريمورك سمت سرويسگيرنده پيدا كرديم . اجازه دهيد سفری داشته باشيم به سمت سرويس دهنده وببينيم كه اين فريمورك در سمت سرويس دهنده چه حرفی برای گفتن دارد و از چهنوع معماری تبعيت می كند .

    فريمورك در سمت سرويس دهنده
    در بالاترين سطح ASP. NET 2.0 ، مجموعه ای از كنترل ها و سرويسهای ارزشمند وجود دارد كه فريمورك دات نت را جهت حمايت از Ajax تحت تاثيرقرار می دهد . اين لايه از فريمورك سرويس دهنده ، ASP.NET AJAX serverextensions ناميده شده و مشتمل بر سه بخش مجزا است :


    • [/*:m:1al756o9]
    • كنترل های سرويس دهنده Ajax [/*:m:1al756o9]
    • web services bridge [/*:m:1al756o9]
    • application services bridge [/*:m:1al756o9]
    در ادامه هر يك از امكانات فوق را به اختصار توضيح می دهيم .
    كنترل های سرويس دهنده Ajax
    مجموعه ای جديد از كنترل های سرويس دهنده می باشند كه به جعبهابزار ASP. NET اضافه می شوند . دو كنترل آنها شاخص تر از ساير كنترل هامی باشند . اولين كنترل ، ScriptManager است كه به عنوان مغز يك صفحه وبمبتنی بر Ajax تلقی می گردد . يكی از چندين مسئوليت كنترل فوق ، مديريتناحيه ای از صفحه است كه در حين Postback غيرهمزمان می بايست بطور پويابهنگام گردد.
    دومين كنترل ، UpdatePanel است كه از آن به منظور تعريف ناحيه ای بر رویصفحه كه می بايست به صورت جزئی بهنگام گردد ، استفاده می شود . با تلفيقتوانمندی دو كنترل اشاره شده وضعيت بخش رابط كاربر يك برنامه وب بطرزمحسوسی بهبود خواهد يافت ( در واقع Postback سنتی جای خود را به Postbackغيرهمزمان می دهد ) . پيامد بكارگيری كنترل های فوق ، بهنگام سازی نواحیخاص و مشخص شده ای بر روی صفحه ، در مقابل refresh تمامی صفحه است .
    ساير عناصر server extension ، سرويس هائی را شامل می شوند كه به منزله يكپل ارتباطی بين سرويس گيرنده و سرويس دهنده رفتار می نمايند .

    web services bridge
    برنامه های وب عموما" ، محدود به منابع موجود بر روی سرويسدهنده محلی می باشند . گذشته از منابع خارجی اندكی نظير فايل های تصوير وCSS ، برنامه ها مجاز به دستيابی به منابع در حوزه برنامه سرويس گيرندهنمی باشند . به منظور غلبه بر اين موانع ، server extensions در فريموركASP. NET Ajax شامل يك web service bridge است كه يك gateway برایفراخوانی سرويس های وب از طريق اسكريپت های سمت سرويس گيرنده را فراهم مینمايد . تامين داده از سمت سرويس دهنده برای استفاده در سمت سرويس گيرندهيكی از موارد كاربرد اين فناوری است .

    Application Service bridge
    با توجه به ارتباط تنگاتنگ ASP. NET Ajax با ASP. NET ،دستيابی به برخی از سرويس های application نظير تائيديه و يا پروفايل رامی توان به يك برنامه موجود اضافه نمود . اين ويژگی باعث می شود بتوانعملياتی نظير بررسی اطلاعات حساس يك كاربر و دستيابی به اطلاعات پروفايلرا كه توسط اسكريپت های سمت سرويس گيرنده ارسال شده اند را انجام داد .

    خلاصه
    در اين مقاله ضمن اشاره به ضرورت استفاده از يك فريمورك دربرنامه های وب مبتنی بر Ajax ، با عناصر موجود در سمت سرويس دهنده و سرويسگيرنده فريمورك ASP.NET AJAX آشنا شديم . در بخش بعد با نحوه تعامل اينعناصر در جهت تامين خواسته پياده كنندگان برنامه های وب مبتنی بر Ajaxآشنا خواهيم شد . بدين منظور به بررسی دو سناريوی مختلف خواهيم پرداخت :مدل پياده سازی با محوريت سرويس گيرنده و مدل پياده سازی با محوريت سرويسدهنده .
    منبع : [برای مشاهده لینک ها شما باید عضو سایت باشید برای عضویت در سایت بر روی اینجا کلیک بکنید]

  6. #6
    کاربرسایت PARS آواتار ها
    تاریخ عضویت
    ۸۷-۰۲-۲۵
    نوشته ها
    666
    سپاس ها
    0
    سپاس شده 0 در 0 پست

    Re: Ajax : تحولی بزرگ در عرصه وب

    Ajax : تحولی بزرگ در عرصه وب ( بخش ششم )

    آنچه تاكنون گفته شده است :


    بخش اول
    تاثير متقابل وب و نرم افزار بر يكديگر
    بخش دوم Ajax و فناوری های مرتبط با آن بخش سوم بررسی نمونه برنامه های مبتنی بر Ajax بخش چهارم برنامه نويسی غيرهمزمان در برنامه های وب بخش پنجم بررسی معماری ASP. NET Ajax
    در بخش پنجمضمن اشاره به ضرورت استفاده از يك فريمورك در برنامه های وب مبتنی بر Ajax، با عناصر موجود در سمت سرويس دهنده و سرويس گيرنده فريمورك ASP.NET AJAXآشنا شديم . در این بخش با نحوه تعامل اين عناصر در جهت تامين خواستهپياده كنندگان برنامه های وب آشنا خواهيم شد . بدين منظور به بررسی دوسناريوی مختلف خواهيم پرداخت : مدل پياده سازی با محوريت سرويس گيرنده ومدل پياده سازی با محوريت سرويس دهنده .
    طراحی انعطاف پذیر معماری ASP. NET Ajax ، دو رویکرد و یا مدل پیاده سازیمختلف را ارائه می نماید . به اولین سناریو که در سمت سرویس گیرنده پیادهسازی می گردد ، "مدل پیاده سازی با محوریت سرویس گیرنده" و به دومينرويكرد که مبتنی بر سرويس دهنده است ، "مدل پياده سازی با محوريت سرويسدهنده " گفته می شود .
    قبل از هر چيز لازم است با نحوه عملکرد هر یک از مدل های فوق بیشتر آشنا شویم تا بتوانیم از هر یک در زمان مناسب استفاده کنیم .

    مدل پياده سازی با محوريت سرويس گيرنده
    در این مدل ، لايه Presentation متاثر از اسكريپت های سمتسرويس گيرنده با بکارگیری DHTML و جاوا اسکریپت است. این بدان معنی است کهیک برنامه با هوشمندی و تعامل بیشتر ، از طریق سرویس دهنده برای سرویسگیرنده ارسال می گردد ( در زمان استقرار صفحه در حافظه برای مرتبه اول ) .پس از آن ، تعامل بین برنامه مرورگر و سرویس دهنده محدود به بازیابی دادهمورد نیاز جهت بهنگام سازی صفحه است . در این مدل کاربران با برنامه تعاملزیادی خواهند داشت ( برنامه ای که در سمت سرویس گیرنده و در مرورگر کاربراجراء شده است ) .
    شکل 1 ، مدل پیاده سازی با محوریت سرویس گیرنده را نشان می دهد .



    شکل 1 : مدل پیاده سازی با محوریت سرویس گیرنده
    مدلفوق برای برنامه هائی که اشتیاق زیادی به استفاده همه جانبه از ویژگی هایDHTML دارند مناسب تر می باشد ( نظیر برنامه های mashup ). برنامه هایmashup ، برنامه های وبی می باشند که محتویات خود را از بیش از یک منبعخارجی دریافت و آنها را با یک مکانیزم مطلوب در اختیار کاربران قرار میدهند . سایت Pageflakes.com یک نمونه در این رابطه است . این نوع سایت هادر تعامل مستمر با کاربر می باشند . با توجه به این که لازم است از یک طرفصفحه سبک و با کارائی مطلوب باشد و از طرف دیگر از منابع سمت سیستم بطورهوشمندانه استفاده گردد ، پیاده سازی این نوع برنامه ها با محوریت سرویسگیرنده ، یک گزینه مطلوب می باشد.
    مدل پياده سازی با محوريت سرويس دهنده
    در این مدل ، منطق برنامه و اكثر عناصر بخش رابط كاربر بر رویسرويس دهنده باقی می مانند . در ادامه ، تغییرات مورد نیاز رابط کاربربرای برنامه مرورگر ارسال می گردد ، در مقابل این که تغییرات از طریقاجرای اسکریپت های سمت سرویس گیرنده ایجاد شوند . رویکرد فوق ما را به یادمدل سنتی صفحات ASP.NET می اندازد . مدلی که بر اساس آن ، سرویس دهنده بخشرابط کاربر را در هر مرتبه postback ایجاد و آن را برای مرورگر و به منظورتفسیر و نمایش یک صفحه جدید ارسال می نماید .
    تفاوت مدل فوق با مدل سنتی صفحات ASP. NET در این است که صرفا" قسمت هائیاز بخش رابط کاربر که می بایست تفسیر گردند برای برنامه مرورگر ارسال میشوند ( در مقابل تمام صفحه ) . مهمترین دستاورد رویکرد فوق ، بهبود محسوسمیزان تعامل و تاخیر در برنامه های وب است .
    شکل 2 ، ماهیت مدل پیاده سازی با محوریت سرویس دهنده را نشان می دهد .



    شكل 2 : مدل پیاده سازی با محوریت سرویس دهنده
    رویکردفوق برای بسیاری از پیاده کنندگان ASP. NET جالب است . چراکه در این مدلبه پیاده کنندگان امکان نگهداری هسته رابط کاربر به همراه منطق برنامه برروی سرویس دهنده داده می شود .عدم تاثیر پذیری این نوع برنامه ها ازعملیاتی نظیر غیرفعال کردن جاوا اسکریپت در مرورگر ، باعث شده است کهادامه حیات و سرویس دهی آنها مستقل از پارامترهای تاثیرگذار در سمت سرویسگیرنده باشد .
    در زمان کار با کنترل هائی نظیر GridView و Repeater در ASP. NET ، مدل فوق ساده ترین و مطمئن ترین روش را ارائه می نماید .

    اهداف ASP. NET Ajax
    پس از آشنائی اولیه با معماری و برخی از ويژگی های ASP. NETAjax ، بد نیست به اهداف و دستاوردهای این فريمورك برای پیاده کنندگانبرنامه های وب نیز اشاره ای داشته باشیم .


    • [/*:mce8hke3]
    • استفاده ساده ، فريموركی با كارآئی بالا :پیاده کنندگان برنامه های وب تمایل دارند که به سادگی و با صرف وقت اندکبتوانند از پتانسیل های Ajax در برنامه های خود استفاده نمایند . فریمورکASP. NET Ajax با ارائه یک کتابخانه قدرتمند در سمت سرویس گیرنده و یکمجموعه از کنترل های سرویس دهنده این امکان را در اختیار پیاده کنندگانبرنامه های وب قرار می دهد که بتوانند به سادگی از امکانات فوق در جهتتامین خواسته های خود ( برنامه های گذشته و برنامه های جدید ) استفادهنمایند . [/*:mce8hke3]
    • یکپارچگی مدل برنامه نویسی سرویس دهنده :کنترل های سرویس دهنده ارائه شده به همراه فریمورک ASP. NET Ajax برایپیاده کنندگان برنامه های وب یک الگوی کاملا" شناخته شده می باشد . چراکهپیش از این پیاده کنندگان از کتترل های سرویس دهند متعددی در برنامه هایوب ASP. NET استفاده کرده اند . [/*:mce8hke3]
    • عناصر و ابزارهائی با کلاس جهانی :عناصر و ابزارهائی که بر روی فریمورک ایجاد شده اند ، نه تنها قابلیت وتوانمندهای فریمورک را توسعه داده اند ، بلکه مجموعه ای از ابزارهایقدرتمند ( نظیر اشکال زدائی ، tracing و profiling ) را در اختیار جامعهبزرگ پیاده کنندگان قرار می دهد . [/*:mce8hke3]
    • حمایت از پلت فرم های متعدد :حمايت در IE ، فايرفاكس ، Safari و ساير مرورگرها اين اطمينان را ايجاد مینمايد كه در زمان كار با مرورگرهای مختلف درگير مشكلات مربوطه نخواهيم شد. [/*:mce8hke3]
    سادگی ، قابليت توسعه ، ابزارهای قدرتمند و وجود هزاران پياده كننده از مشخصه های مثبت فریمورک ASP. NET Ajax محسوب می گردد.
    خلاصه
    تاکنون و در طی شش مقاله با مواردی نظیر شی XMLHttpRequest ،برخی الگوهای Ajax استفاده شده در زمان پیاده سازی برنامه های وب قدرتمندبا توانائی ایجاد تعامل بیشتر ، معماری ASP.NET AJAX و سناریوهای مختلفپیاده سازی آشنا شدیم .
    در بخش بعد با استناد به موارد فوق با نحوه استفاده از این فریمورک آشناخواهیم شد و صفحاتی را ایجاد خواهیم کرد که در آنها از Ajax استفاده شدهباشد.
    منبع : [برای مشاهده لینک ها شما باید عضو سایت باشید برای عضویت در سایت بر روی اینجا کلیک بکنید]

  7. #7
    کاربرسایت PARS آواتار ها
    تاریخ عضویت
    ۸۷-۰۲-۲۵
    نوشته ها
    666
    سپاس ها
    0
    سپاس شده 0 در 0 پست

    Re: Ajax : تحولی بزرگ در عرصه وب

    تحولی بزرگ در عرصه وب ( بخش هفتم )

    آنچه تاكنون گفته شده است :

    بخش اول
    تاثير متقابل وب و نرم افزار بر يكديگر
    بخش دوم Ajax و فناوری های مرتبط با آن بخش سوم بررسی نمونه برنامه های مبتنی بر Ajax بخش چهارم برنامه نويسی غيرهمزمان در برنامه های وب بخش پنجم بررسی معماری ASP. NET Ajax بخش ششم بررسی مدل پياده سازی با محوريت سرويس گيرنده و
    مدل پياده سازی با محوريت سرويس دهنده .
    تاکنونو در طی شش مقاله با مواردی نظیر شی XMLHttpRequest ، برخی الگوهای Ajaxاستفاده شده در زمان پیاده سازی برنامه های وب قدرتمند با توانائی ایجادتعامل بیشتر ، معماری ASP.NET AJAX و سناریوهای مختلف پیاده سازی آشناشدیم .
    در این بخش با استناد به موارد فوق با نحوه استفاده از این فریمورک آشناخواهیم شد و صفحات وب مبتنی بر Ajax را با تبعیت از مدل پیاده سازی بامحوریت سرویس دهنده ایجاد خواهیم کرد .

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

    مثال : ایجاد یک صفحه مبتنی بر Ajax با تمرکز بر روی پتانسیل های سمت سرویس دهنده فریمورک ASP. NET Ajax
    در این مثال می خواهیم تعداد مقالاتی را که بر روی سایت سخاروش و در هر یک از گروه های مختلف منتشر شده است ، به اطلاع ملاقاتکنندگان سایت برسانیم .برای سادگی کار ، فرض می شود که تعداد مقالات منشترشده بر روی سایت از طریق بانک اطلاعاتی بازیابی نخواهد شد و در مقابل ازیک کلاس با نام Maghalat برای بازیابی تعداد مقالات منشتر شده در هر گروهاستفاده خواهیم کرد . کلاس فوق دارای صرفا" یک متد با GetNumberOfMaghalatاست که وظیفه آن برگرداندن تعداد مقالات منتشر شده در هر گروه است .
    پس از آشنائی اولیه با صورت مسئله ، مراحل زیر را برای پیاده سازی یک صفحهوب مبتنی بر Ajax با محوریت سرویس دهنده ، دنبال می نمائیم .

    مرحله اول : ایجاد سایت
    اولین مرحله در پیاده سازی هر نوع برنامه وب مبتنی بر ASP. NET، ایجاد وب سایت اولیه است . بدین منظور از برنامه ویژوال استودیو نسخههای 2005 و یا 2008 استفاده کرده ( و یا نسخه Visual Web Developer ) وبرای وب سایت خود تمپلیت ASP.NET AJAX-Enabled Web Site را انتخاب می کنیم. بدین ترتیب ، یک وب سایت با قابلیت استفاده از اسمبلی ASP. NET AJAX (با نام System.Web.Extensions.dll ) از طریق GAC ( برگرفته شده از GlobalAssembly Cache ) ایجاد می گردد . این کار همچنین باعث ایجاد یک فایلweb.config پیچیده می گردد که شامل تنظیمات اضافه دیگر برای ارتباط بافریمورک ASP. NET AJAX است .
    شکل 1 ، نحوه انتخاب تمپلیت ASP.NET AJAX-Enabled Web Site را در زمان ایجاد یک وب سایت نشان می دهد .




    شکل 1 : انتخاب تمپلیت ASP.NET AJAX-Enabled Web Site
    در زمان ایجاد یک وب سایت
    مرحله دوم : طراحی و پیاده سازی کلاس Maghalat
    Maghalat یک کلاس ساده است که دارای صرفا" یک متد با نامGetNumberOfMaghalat است که گروه مقاله را به عنوان پارامتر ورودی گرفته وتعداد مقالات منشتر شده در آن گروه را برمی گرداند . بدین منظور از یکساختار Select Case استفاده شده است تا بر اساس مقدار پارامتر ورودی ، یکعدد را بطور ایستا برگرداند ( برای سادگی کار نام گروه مقاله و تعداد آنمستقیما" در کد درج شده اند ) .
    شکل 2 ، ساختار کلاس Maghalat را نشان می دهد .



    شکل 2 : ساختار کلاس Maghalat
    کد زیر ، کلاس فوق به همراه متد مربوطه را نشان می دهد .

    کد:
    کلاس Maghalat.VB
    PublicClass MaghalatPublicShared Function GetNumberOfMaghalat(ByVal ArticleGroup AsString) As Integer Dim Count As Integer = 0 SelectCase ArticleGroup Case "Software" Count = 11 Case "Hardware" Count = 12 Case "Security" Count = 13 Case "Network" Count = 14 Case "other" Count = 15 EndSelectGetNumberOfMaghalat = CountEndFunctionEnd Class
    مرحله سوم : ایجاد یک صفحه وب ASP.NET
    در زمان ایجاد وب سایت ، بطور اتوماتیک یک صفحه Default.aspx نیز ایجاد می گردد . کد اولیه این صفحه به صورت زیر است

    کد:
    <%@Page Language="VB"AutoEventWireup="true" %><!DOCTYPEhtml PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"><html xmlns="http://www.w3.org/1999/xhtml" dir="rtl"><head runat="server"> <title>تست شماره یک /title></head><body> <formid="form1"runat="server"> <asp:ScriptManagerID="ScriptManager1"runat="server"/> <div> </div> </form></body></html>
    تنهاتفاوت صفحه فوق با سایر صفحات Default.aspx ایجاد شده توسط ویژوال استودیو، اضافه شدن کنترل ScriptManager است . همانگونه که قبلا" اشاره گردید ،کنترل فوق به عنوان مغز متفکر یک صفحه مبتنی بر Ajax ایفای وظیفه می نماید. کنترل فوق ، مسئولیت توزیع کدهای سمت سرویس گیرنده برای مرورگر و مدیریتبهنگام سازی جزئی ( نه تمامی صفحه ) صفحه را برعهده دارد .
    پس از ایجاد اولیه صفحه وب ، از کنترل های دیگری برای طراحی بخش رابطکاربر متناسب با خواسته های موجود استفاده می کنیم . در این مثال خاص ازیک کنترل ListBox جهت نمایش گروه مقاله با قابلیت AutoPostBack و یک کنترلLabel به منظور نمایش نتایج استفاده شده است .

    کد:
    <%@ Page Language="VB" AutoEventWireup="true" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" dir="rtl"><head runat="server"> <title>تست شماره یک </title></head> <body> <form id="form1" runat="server"> <asp:ScriptManager ID="ScriptManager1" runat="server" /> <div style="text-align: center"> <table> <tr> <td colspan="3"> <strong>ایجاد یک صفحه وب مبتنی بر Ajax<br /> (( پیاده سازی با محوریت پتانسیل های سمت سرویس دهنده فریمورک ASP.NET Ajax )) </strong> <br /> </td> </tr> <tr> <td style="width: 150px"> لطفا" یک گروه مقاله را انتخاب نمائید </td> <td align="right" colspan="2" dir="rtl"> <asp:ListBox ID="ArticleGroup" runat="server" AutoPostBack="True" Font-Names="Tahoma" Font-Size="Small" ForeColor="#C04000"> <asp:ListItem> نرم افزار </asp:ListItem> <asp:ListItem> سخت افزار </asp:ListItem> <asp:ListItem> امنیت اطلاعات </asp:ListItem> <asp:ListItem> شبکه </asp:ListItem> <asp:ListItem> سایر </asp:ListItem> </asp:ListBox></td> </tr> <tr> <td style="width: 150px"> </td> <td style="width: 100px"> </td> <td style="width: 131px"> </td> </tr> <tr> <td colspan="3" style="height: 18px"> <asp:Label ID="LblFinalResult" runat="server" Font-Names="Tahoma" Font-Size="Small" ForeColor="Black" Text="Label"></asp:Label></td> </tr> </table> </span> </div> </form></body></html>
    ازListBox برای نمایش لیست گروه مقالات استفاده شده است . مقدار خصلتAutoPostBack کنترل فوق ، True در نظر گرفته شده است تا بلافاصله پس ازانتخاب یکی از آیتم های موجود در لیست ، یک PostBack به سمت سرویس دهندهتحقق یابد . این کار از طریق رویداد SelectedIndexChanged محقق خواهد شدکه متعاقب آن روتین ArticleGroup_SelectedIndexChanged فراخوانده می شود .در انتهای صفحه از یک کنترل Label استفاده شده است تا به کمک آن بتواننتایج را در خروجی نمایش داد .
    از طریق کد نوشته شده در روتین ArticleGroup_SelectedIndexChanged ،انتخاب کاربر تشخیص و متد مربوط به کلاس maghalat صدا زده می شود تا پس ازبرگرداندن نتایج ، ماحصل کار از طریق کنترل Label نمایش داده شود .
    کد روتین ArticleGroup_SelectedIndexChanged در جدول زیر نشان داده شده است .

    کد:
    ProtectedSub ArticleGroup_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) LblFinalResult.Text = Maghalat.GetNumberOfMaghalat(ArticleGroup.SelectedValue) LblFinalResult.Text += "" LblFinalResult.Text += "مقاله تاکنون در گروه " LblFinalResult.Text += "" LblFinalResult.Text += ArticleGroup.SelectedValue LblFinalResult.Text += "" LblFinalResult.Text += "برروی سایت کلوب آموزش ایرانیان منشتر شده است " EndSub
    مررحله چهارم : اجرای برنامه و بررسی نتایج
    پس از اجرای برنامه فوق از طریق مرورگر و انتخاب یک گروه مقاله ، خروجی آن به صورت زیر نمایش داده می شود .




    شکل 3 : نمایش تعداد مقالات منتشر شده در هر گروه
    عملکردبرنامه فوق متناسب با انتظار ما است : با انتخاب یک گروه مقاله ، تعدادمقالات منتشر شده در آن گروه در قسمت پائین صفحه نمایش داده می شود . تنهامسئله مهم و قابل توجه بازخوانی مجدد تمامی صفحه پس از هر مرتبه ای است کهکاربر یک گروه مقاله را انتخاب می نماید . برای حل این موضوع می توان ازکنترل جادوئی UpdatePanel استفاده کرد . شکل زیر نحوه استفاده از کنترلفوق در مثال اشاره شده را نشان می دهد .




    کد:
    ...<asp:UpdatePanel ID="UpdatePanel1" runat="server"> <ContentTemplate > <asp:ListBox ID="ArticleGroup" runat="server" AutoPostBack="True" Font-Names="Tahoma" Font-Size="Small" ForeColor="#C04000"> <asp:ListItem> نرم افزار </asp:ListItem> <asp:ListItem> سخت افزار </asp:ListItem> <asp:ListItem> امنیت اطلاعات </asp:ListItem> <asp:ListItem> شبکه </asp:ListItem> <asp:ListItem> سایر </asp:ListItem> </asp:ListBox></td> </tr> <tr> <td style="width: 150px"> </td> <td style="width: 100px"> </td> <td style="width: 131px"> </td> </tr> <tr> <td colspan="3" style="height: 18px"> <asp:Label ID="LblFinalResult" runat="server" Font-Names="Tahoma" Font-Size="Small" ForeColor="Black" Text="Label"></asp:Label></td> </tr></ContentTemplate></asp:UpdatePanel> ...
    به صورت پیش فرض ،محتویات موجود بین تگ ContentTemplate مربوط به کنترل UpdatePanel در زمانبروز یک postback غیرهمزمان بطور اتوماتیک بهنگام خواهند شد. Postback فوقبطور غیرهمزمان اتفاق می افتد و رفتار آن با postback عادی متفاوت است . (در postback عادی ، یک درخواست برای سرویس دهنده ارسال می گردد تا پس ازانجام پردازش های ضروری در سمت سرویس دهنده ، رابط کاربر جدید برای مرورگرارسال گردد ) .
    و اما یک سوال مهم که ممکن است در ذهن شما مطرح شده باشد . یک postbackغیرهمزمان چیست ؟ اکثر پیاده کنندگان برنامه های وب به کمک فناوری ASP.NETصرفا" با یک نوع postback آشنا می باشند . با بکارگیری UpdatePanel ، صفحهروال طبیعی حیات خود را طی می نماید ، ولی PostBack به عنوان یک postBackغیرهمزمان شناخته می شود . که در آن از روش های هوشمندانه تری استفاده میگردد و صفحه با مدلی متفاوت تر در حین چرخه حیات خود پردازش می گردد .
    در ادامه ، همزمان با اجرای صفحه و انتخاب یک گروه مقاله ، بخش رابط کاربربطور اتوماتیک و بدون نیاز به بازخوانی کامل صفحه بهنگام خواهد شد . بطورخلاصه ، با اضافه کردن یک مجموعه اندک از کنترل های سرویس دهنده بر رویصفحه ، از بازخوانی مجدد تمامی صفحه ممانعت بعمل آمده و همچنین در تعاملکاربر با برنامه وقفه ای ایجاد نخواهد شد .

    مرحله پنجم : بهینه سازی خروجی و ضرورت استفاده از کنترل UpdateProgress
    در صورتی که با یک خط سرعت پائین برنامه فوق اجراء گردد ،مشاهده خواهیم کرد که زمان نسبتا" زیادی بطول خواهد انجامید تا نتایجنمایش داده شود . این موضوع ( تاخیر محسوس در مشاهده خروجی کار ) باعث میشود کاربری که برنامه را اجراء کرده است ، نگران عملکرد صحیح برنامه باشدو اینگونه برداشت کند که برنامه دچار اختلال شده است .
    قبل از معرفی Ajax ، برای صفحاتی که بازخوانی مجدد می گردیدند از علامتیاستفاده می شد که کاربران متوجه این موضوع می شدند که فرآیندی در حالانجام است و یا درخواست آنان مورد پذیرش قرار گرفته شده است . هم اینک باتوقف postback طبیعی ، کاربران متوجه این موضوع نمی شوند که عملیاتی درشرف انجام است تا این که فرآیند مورد نظر به اتمام برسد ( از علامتی براینشان دادن این که فرآیندی در حال انجام است ، استفاده نمی شود ) . در چنینمواردی ، کاربران نیازمند یک فیدبک دیداری ( ویژوال ) هستند تا نسبت بهانجام یک فرآیند در پس زمینه آگاه گردند .
    کنترل UpdateProgress یک راه حل جهت مشکل فوق را ارائه می نماید . هدفکنترل فوق ، نشان دادن یک نشانه دیداری به کاربران در زمان بروز یکpostback غیرهمزمان است . بدین منظور می توان کد زیر را به انتهای صفحهاضافه نمود .

    کد:
    <asp:UpdateProgressID="UpdateProgress1"runat="server"> <ProgressTemplate> <img src=" images/ajax1.gif " /> در حال بارگذاری ... </ProgressTemplate></asp:UpdateProgress>
    پس ازاجرای برنامه ( با لحاظ کردن کنترل UpdateProgress ) ، پس از انتخاب یکگروه مقاله توسط کاربر یک نشانه دیداری نمایش داده خواهد شد . شکل 4 ،خروجی برنامه را به همراه نشانه دیداری نشان می دهد .


    شکل 4 : ارائه یک نشانه دیداری در زمان تحقق یک postback غیرهمزمان
    درصورت اجرای برنامه فوق بر روی ماشین محلی ، به احتمال فراوان فرآیندبهنگام سازی صفحه به سرعت انجام خواهد شد و عملکرد کنترل UpdateProgressمشاهده نخواهد شد . برای کاهش سرعت و مشاهده نشانه دیداری می توان سرعت آنرا به صورت زیر کاهش داد .


    کد:
    ProtectedSub ArticleGroup_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) LblFinalResult.Text = Maghalat.GetNumberOfMaghalat(ArticleGroup.SelectedValue) LblFinalResult.Text += "" LblFinalResult.Text += "مقاله تاکنون در گروه " LblFinalResult.Text += "" LblFinalResult.Text += ArticleGroup.SelectedValue LblFinalResult.Text += "" LblFinalResult.Text += "برروی سایت کلوب آموزش ایرانیان منشتر شده است " System.Threading.Thread.Sleep(2000) EndSub
    توجه داشته باشید کهنمی بایست از متد Sleep در کد تولید شده نهائی استفاده کرد . در مثال فوقبا فرض این که برنامه بر روی یک ماشین محلی اجراء شده است و هدف مشاهدهعملکرد کنترل UpdateProgress است ، از کنترل فوق استفاده شده است .
    خلاصه
    در این مقاله با نحوه ایجاد یک صفحه مبتنی بر Ajax با تمرکز برروی پتانسیل های سمت سرویس دهنده فریمورک ASP. NET Ajax آشنا شدیم . بدینمنظور یک نمونه مثال ساده را بررسی کردیم که در آن از کنترل هایUpdatePanel و UpdateProgress به منظور نشان دادن قابلیت Ajax در صفحاتASP.NET استفاده شده بود .
    در بخش بعد با نحوه ایجاد یک صفحه مبتنی بر Ajax با تمرکز بر روی پتانسیلهای سمت سرویس گیرنده فریمورک ASP. NET Ajax ، آشنا خواهیم شد .


    منبع : [برای مشاهده لینک ها شما باید عضو سایت باشید برای عضویت در سایت بر روی اینجا کلیک بکنید]

  8. #8
    کاربرسایت PARS آواتار ها
    تاریخ عضویت
    ۸۷-۰۲-۲۵
    نوشته ها
    666
    سپاس ها
    0
    سپاس شده 0 در 0 پست

    Re: Ajax : تحولی بزرگ در عرصه وب

    Ajax : تحولی بزرگ در عرصه وب ( بخش هشتم )

    آنچه تاكنون گفته شده است :

    بخش اول
    تاثير متقابل وب و نرم افزار بر يكديگر
    بخش دوم Ajax و فناوری های مرتبط با آن بخش سوم بررسی نمونه برنامه های مبتنی بر Ajax بخش چهارم برنامه نويسی غيرهمزمان در برنامه های وب بخش پنجم بررسی معماری ASP. NET Ajax بخش ششم بررسی مدل پياده سازی با محوريت سرويس گيرنده و مدل پياده سازی با محوريت سرويس دهنده . بخش هفتم ایجاد صفحات وب مبتنی بر Ajax با تاکید بر روی پتانسيل های سمت سرویس دهنده فريمورک ASP.NET Ajax
    در بخش هفتم بانحوه ایجاد یک صفحه مبتنی بر Ajax با تمرکز بر روی پتانسیل های سمت سرویسدهنده فریمورک ASP. NET Ajax آشنا شدیم . بدین منظور یک نمونه مثال سادهرا بررسی کردیم که در آن از کنترل های UpdatePanel و UpdateProgress بهمنظور نشان دادن قابلیت Ajax در صفحات ASP. NET استفاده شده بود .
    در اين بخش با نحوه ایجاد یک صفحه مبتنی بر Ajax با تمرکز بر روی پتانسیلهای سمت سرویس گیرنده فریمورک ASP. NET Ajax ، آشنا خواهیم شد .

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

    مدل پياده سازی با محوريت سرويس گيرنده
    همانگونه که در بخش ششماشاره گردید ، در این مدل ، لايه Presentation متاثر از اسكريپت های سمتسرويس گيرنده با بکارگیری DHTML و جاوا اسکریپت می گردد. این بدان معنیاست که یک برنامه با هوشمندی و تعامل بیشتر ، از طریق سرویس دهنده برایسرویس گیرنده ارسال می گردد ( در زمان استقرار صفحه در حافظه برای مرتبهاول ) . پس از آن ، تعامل بین برنامه مرورگر و سرویس دهنده محدود بهبازیابی داده مورد نیاز جهت بهنگام سازی صفحه است . در این مدل کاربران بابرنامه تعامل زیادی خواهند داشت ( برنامه ای که در سمت سرویس گیرنده و درمرورگر کاربر اجراء شده است ) .
    برای آشنائی عملی با مدل فوق ، در ادامه یک نمونه مثال ساده و در عین حالکاربردی را بررسی خواهيم کرد. در اين مثال با فراخوانی یک سرویس وب ازطریق کد سمت سرویس گيرنده ، داده مورد نياز جهت بهنگام سازی بخش رابطکاربر از سرويس دهنده دريافت خواهد شد .
    قبل از تشريح مثال فوق ، بد نیست در ابتدا با برخی از مفاهيم کليدی و مهمدر رابطه با بکارگيری سرویس های وب از طریق کد سمت سرویس گيرنده در برنامههای وب مبتنی بر Ajax آشنا شويم .

    دستيابی به سرویس های وب از طریق کد سمت سرویس گيرنده
    ASP. NET Ajax روش های متعددی را به منظور فراخوانی سرويس هایوب ارائه می نمايد . جاوا اسکريپت ، XML Script و AutoCompleteExtenderنمونه هائی در این زمينه می باشند . با استفاده از امکانات ارائه شده درفريمورک فوق ، پياده کنندگان می توانند سرویس های وب را ( فايل هائی باانشعاب asmx . ) از طریق مرورگر و به کمک کدهای سمت سرویس گيرندهفراخوانده و از پتانسیل های آنها در برنامه های وب با هدف بهبود بخش رابطکاربر استفاده نمایند .
    در چنين مواردی ، یک صفحه می تواند متدهای سمت سرویس دهنده را بدون انجامpostback و نیاز به بازخوانی تمامی صفحه فراخوانده و از آنها استفادهنماید ، چراکه صرفا" داده بين مرورگر و سرويس دهنده وب مبادله خواهد شد .
    بکارگيری کلاس های پراکسی جاوا اسکريپت یکی از روش های فریمورک ASP.NETAjax برای فراخوانی سرویس های وب است .بدین ترتيب می توان یک متد از سرویسوب موجود در سمت سرویس دهنده را با فراخوانی متد کلاس پراکسی جاوا اسکريپتمرتبط با آن فراخواند .
    ASP. NET Ajax ، همچنين امکانات لازم برای جاوا اسکريپت به منظور فراخوانیسرویس هائی نظیر پروفايل و membership را ارائه می نماید .
    در مثالی که در ادامه بررسی خواهیم کرد ، از طریق جاوا اسکريپت در سمتسرویس گيرنده ، متد مورد نياز سرویس وب در سمت سرویس دهنده صدا زده می شود.

    آشنائی با پراکسی های ASP.NET AJAX Web Service
    کد پراکسی دارای یک نقش مهم و حياتی در ارسال و دريافت پيام ازسرویس های وب است . فراخوانی یک سرویس وب با استفاده از پراکسی سمت سرویسگیرنده يکی از ويژگی های مهم فريمورک ASP. NET Ajax در سمت سرویس گيرندهاست . در دات نت ، با استفاده از wsdl.exe و يا بکارگيری گزينه Add WebReference در ويژوال استوديو ، امکان ايجاد پراکسی فراهم می گردد . پراکسیهای ASP. NET Ajax با روش های فوق توليد نخواهند شد و برای ایجاد آنها میبایست از خصلت Service کنترل ScriptManager استفاده کرد .

    فعال کردن قابليت فراخوانی سرویس های وب به کمک جاوا اسکريپت
    برای فراخوانی سرويس های وب از طریق اسکريپت می بايست پيکربندیلازم را به کمک فایل web.config انجام داد . بدين منظور لازم استScriptHandlerFactory HTTP handler را از طریق فایل web.config ، ريجسترکرد تا قادر به پردازش درخواست هائی باشد که از سمت سرویس گیرنده و به کمکاسکریپت ها قصد استفاده از سرویس های وب را دارند. در مواردی که فراخوانییک سرویس وب توسط ASP.NET Ajax صورت نمی پذیرد ، درخواست مربوطه به هندلرپیش فرض ارجاع داده می شود.
    کد زیر ، يک نمونه فایل web.config به همراه handler مربوطه را نشان می دهد .

    کد:
    <system.web><httpHandlers> <remove verb="*" path="*.asmx"/> <addverb="*" path="*.asmx"type="System.Web.Script.Services.ScriptHandlerFacto ry"validate="false"/> </httpHandlers><system.web>
    توجهداشته باشید در زمان ایجاد یک وب سایت مبتنی بر Ajax در ويژوال استوديونسخه های 2005 و یا 2008 ، تنظیمات فوق بطور اتوماتیک در فایل web.configاعمال خواهد شد .
    پس از اعمال تغييرات فوق ، برای فعال کردن قابلیت فراخوانی یک سرویس وب ازطریق اسکريپت در يک صفحه ASP.NET ، مراحل زیر را می بایست انجام داد :

    • [/*:m:3vmb9v4u]
    • مرحله اول : اضافه کردن کنترل ScriptManager بر روی صفحه[/*:m:3vmb9v4u]
    • مرحله دوم: اضافه کردن یک مرجع به سرویس وب توسط عنصر asp:ServiceReference و تنظيمخصلت path آن به گونه ای که به سرویس وب اشاره نماید . شیServiceReference به ASP.NET Ajax اعلام می نماید که یک کلاس پراکسی جاوااسکريپت را برای فراخوانی سرویس وب مورد نظر توسط اسکريپت ، توليد نماید .[/*:m:3vmb9v4u]
    کد زیر ، نحوه فراخوانی یک سرویس وب با نام Test.asmx توسط اسکريپت را نشان می دهد .

    کد:
    <asp:ScriptManagerrunat="server" ID="scriptManager"> <Services><asp:ServiceReference path="~/WebServices/Test.asmx" /></Services></asp:ScriptManager>
    درزمان تفسير صفحه ای که شامل عنصر <asp:ScriptManager> می باشد ، یککلاس پراکسی جاوا اسکريپت برای سرویس وب Test.asmx ایجاد می گردد . کلاسپراکسی ، دارای متدهای مرتبط با هر یک از متدهای موجود در سرویس وبTest.asmx می باشد . صفحه همچنين شامل کلاس های پراکسی جاوا اسکريپت مرتبطبا نوع های داده سرویس دهنده است که به عنوان پارامتر ورودی و یا مقادیربرگردانده شده توسط متدهای سرویس وب مورد استفاده قرار می گیرد . بدینترتیب ، اسکریپت قادر به مقداردهی اولیه پارامترها و برگرداندن مقادیرخواهد بود .
    پس از این مقدمه نسبتا" طولانی و شاید هم خسته کننده ! ولی ضروری ، اجازهدهید در ادامه به منظور آشنائی با قابلیت های فريمورک ASP.NET Ajax در سمتسرویس گیرنده ، یک نمونه مثال کاربردی را با یکدیگر دنبال نمائیم .

    مثال : ایجاد یک صفحه مبتنی بر Ajax با تمرکز بر روی پتانسیل های سمت سرویس گيرنده
    در این مثال می خواهیم تعداد مقالاتی را که بر روی سایت سخاروش و در هر یک از گروه های مختلف منتشر شده است ، به اطلاع ملاقاتکنندگان سایت برسانیم .برای سادگی کار ، فرض می شود که تعداد مقالات منشترشده بر روی سایت از طریق بانک اطلاعاتی بازیابی نخواهد شد و در مقابل ازیک کلاس با نام Maghalat برای بازیابی تعداد مقالات منشتر شده در هر گروهاستفاده خواهیم کرد . کلاس فوق دارای صرفا" یک متد با GetNumberOfMaghalatاست که وظیفه آن برگرداندن تعداد مقالات منتشر شده در هر گروه است . برایدستیابی به خدمات این متد از یک سرویس وب با نام MaghalatService.asmxاستفاده خواهیم کرد که از طریق کد سمت سرویس گیرنده فعال خواهد شد .
    پس از آشنائی اولیه با صورت مسئله ، مراحل زیر را برای پیاده سازی یک صفحهوب مبتنی بر Ajax با محوریت سرویس گيرنده ، دنبال می نمائیم .

    مراحل اول ( ایجاد سایت ) و دوم ( طراحی و پیاده سازی کلاس Maghalat ) همانند مثال ارائه شده در بخش هفتم است .
    مرحله سوم : تعریف یک سرویس وب
    برای جستجو و یافتن تعداد مقالات منتشر شده در هر گروه از یکسرویس وب با نام MaghalatService.asmx استفاده خواهیم کرد که متدGetNumberOfMaghalat کلاس Maghlat را فرامی خواند . کد سرویس وب فوق درجدول زیر نشان داده شده است .



    کد:
    <%@WebService Language="VB"Class="MaghalatService" %>Imports SystemImports System.WebImports System.Web.ServicesImports System.Web.Services.ProtocolsImports System.Web.Script.Services<ScriptService()> _Public Class MaghalatService Inherits System.Web.Services.WebService <ScriptMethod()> _ <WebMethod()> _ PublicFunction GetNumberOfMaghalat(ByVal articleGroup AsString) As Integer System.Threading.Thread.Sleep(1000) Return Maghalat.GetNumberOfMaghalat(articleGroup) EndFunctionEndClass
    توضيحات :

    • [/*:m:3vmb9v4u]
    • namespaceبا نام System.Web.Script.Services بخشی از هسته فريمورک ASP.NET Ajax استکه برخی از عملیات مبادله داده در شبکه و اسکريپت نويسی را کپسوله مینماید .[/*:m:3vmb9v4u]
    • از دو خصلت جديد ScriptService و ScriptMethod در زمانتعريف متد و کلاس سرویس وب استفاده شده است . با استفاده از خصلت های فوق، فريمورک ASP.NET Ajax تشخیص می دهد که کدام بخش از سرویس ها توسط پراکسیهای جاوا اسکریپت بکار گرفته شده است . وجود خصلت ScriptMethod ضروری نیستولی با استفاده از آن می توان برخی تنظيمات متد را انجام داد .[/*:m:3vmb9v4u]
    • پرداختنبه این موضوع که پراکسی چه چيزهائی را تولید می نماید ، خارج از حوصله اینمقاله است. با نگاهی به انتهای پراکسی تعريف شده در سرویس وب فوق ،درانتها با متد GetNumberOfMaghalat مواجه می شویم . متد فوق به اسکريپت سمتسرویس گيرنده مکانيزمی را ارائه می نماید که بتواند متدهای وب موجود درسرویس وب را استفاده نماید . در زمان فراخوانی سرویس وب از مجموعهپارامترهای بمراتب بیشتری استفاده خواهد شد که پياده کنندگان آنها را درسرویس وب تعریف نکرده اند .[/*:m:3vmb9v4u]
    • در صورت مشاده فایل ASMX در مرورگر بههمراه سوئيچ js/ ، پراکسی جاوا اسکريپت توليد شده توسط فريمورک برای سرویسفوق نشان داده می شود .
      [/*:m:3vmb9v4u]
    کد:
    varMaghalatService=function(){MaghalatService.initializeBase(thi s);this._timeout =0;this._userContext = null;this._succeeded = null;this._failed =null;}MaghalatService.prototype={_get_path:function() { var p =this.get_path(); if (p) return p; else returnMaghalatService._staticInstance.get_path();},GetNumberOfMa ghalat:function(articleGroup,succeededCallback,failedCallback, userContext) {return this._invoke(this._get_path(),'GetNumberOfMaghalat',false,{artic leGroup:articleGroup},succeededCallback,failedCallback,userConte xt);}}MaghalatService.registerClass('MaghalatService',Sys.Net.We bServiceProxy);MaghalatService._staticInstance= new MaghalatService();MaghalatService.set_path = function(value) {MaghalatService._staticInstance.set_path(value);}MaghalatServic e.get_path = function() { returnMaghalatService._staticInstance.get_path();}MaghalatServic e.set_timeout = function(value) {MaghalatService._staticInstance.set_timeout(value);}MaghalatSer vice.get_timeout = function() { returnMaghalatService._staticInstance.get_timeout();}MaghalatSer vice.set_defaultUserContext = function(value) {MaghalatService._staticInstance.set_defaultUserContext(value);} MaghalatService.get_defaultUserContext = function() { returnMaghalatService._staticInstance.get_defaultUserContext();} MaghalatService.set_defaultSucceededCallback = function(value) {MaghalatService._staticInstance.set_defaultSucceededCallback(va lue);}MaghalatService.get_defaultSucceededCallback = function() { returnMaghalatService._staticInstance.get_defaultSucceededCallba ck();}MaghalatService.set_defaultFailedCallback = function(value) {MaghalatService._staticInstance.set_defaultFailedCallback(value );}MaghalatService.get_defaultFailedCallback = function() { returnMaghalatService._staticInstance.get_defaultFailedCallback( );}MaghalatService.set_path("/Ajax1/MaghalatService.asmx");MaghalatService.GetNumberOfMaghalat=funct ion(articleGroup,onSuccess,onFailed,userContext){MaghalatService ._staticInstance
    مرحله چهارم : ایجاد یک صفحه ASP.NET
    در ادامه یک صفحه aspx . را به منظور استفاده از امکانات ارائهشده در سرویس فوق ایجاد می نمائیم . در اولین گام می بایست قابلیت استفادهاز Ajax در صفحه فعال گردد . بدین منظور از کنترل ScriptManager استفادهخواهیم کرد . در ادامه ، یک مرجع به سرویس وب توسط عنصرasp:ServiceReference اضافه کرده و مقدار خصلت path آن راMaghalatService.asmx در نظر می گیریم .

    کد:
    <asp:ScriptManagerID="ScriptManager1"runat="server"> <Services> <asp:ServiceReferencePath="MaghalatService.asmx"/> </Services></asp:ScriptManager>
    دربخش ويژوال صفحه ASP.NET از عناصر سرویس دهنده استفاده نشده است و صرفا"از عناصر HTML که امکان دستیابی به آنها از طریق کدهای سمت سرویس گیرندهوجود دارد ، استفاده شده است .

    کد:
    <divalign="center"> <spanstyle="font-size: 10pt; font-family: Tahoma"> <strongdir="rtl"style="text-align: center">ایجاد یک صفحه وب مبتنی بر Ajax <br /> (( پیاده سازی با محوریت پتانسیل های سمت سرویس گيرنده فریمورک ASP.NET Ajax )) </strong> <br/> </span> <br/> <selectid="ArticleGroup"size="5"style="font-size: 12pt; width: 146px; color: navy; font-family: Tahoma"> <optionvalue="Software"> نرم افزار </option> <optionvalue="Hardware">سخت افزار </option> <optionvalue="Security"> امنیت اطلاعات </option> <optionvalue="Network"> شبکه </option> <optionvalue="others">سایر</option> </select> </div> <br/> <divalign="center"style ="font-family :Tahoma ; font-size :small"> <spanid="maghalatResults"></span> <spanid="loading"style="display:none;"> <img src="images/ajax1.gif"alt=""/> در حال بارگذاری... </span> </div>
    باتوجه به اين که برای ایجاد بخش رابط کاربر به امکانات موجود در سمت سرویسدهنده نیاز نمی باشد ، صرفا" از عناصر HTML معمولی در مقابل کنترل هایسرویس دهنده استفاده شده است . در صفحه فوق از عناصری نظیر Select ( جهتارائه لیست گروه مقالات ) و Span ( جهت نمایش فيدبک دیداری به کاربر درزمان بازيابی داده از سرویس دهنده ) استفاده شده است .
    برای دمیدن روح حيات در کالبد صفحه فوق از کد جاوا اسکریپت زير استفاده شده است .

    کد:
    <scripttype="text/javascript"> [/color]</script>
    توضيحات :

    • [/*:m:3vmb9v4u]
    • بااستفاده از دستورات ( Sys.Application.add_load(page_load و (Sys.Application.add_unload(page_unload ، توابع مربوط به رویدادهای Loadو Unload در مرورگر ريجستر شده است .[/*:m:3vmb9v4u]
    • فريمورک سمت سرویس گیرنده یکچرخه حيات مشابه با چرخه حيات صفحات ASP.NET را ارائه می نماید . در چنينمواردی می توان از رویداد Load به عنوان فرصتی جهت ریجستر کردن یک handlerبه منظور کنترل هر گونه تغییرات در لیست مقالات استفاده کرد.
      ($addHandler(articleGroup, "change", articleGroup_onchange[/*:m:3vmb9v4u]
    • از متد unload برای سلب مسئوليت از handler ريجستر شده استفاده شده است
      ($removeHandler(articleGroup, "change", articleGroup_onchange
      [/*:m:3vmb9v4u]
    • درکد فوق به دستورات جديدی برخورد می کنیم که با علامت $ شروع شده اند .دستورات فوق ، اسامی مستعار و یا کوتاه شده ای می باشند که در نهایت به کدجاوا اسکريپت ترجمه خواهند شد . به عنوان نمونه، دستور $get همانندبکارگیری document.getElementById می باشد . یکی از مزایای این روش ،استقلال کدها از تفاوت های موجود بین مرورگرهای مختلف است . [/*:m:3vmb9v4u]
    • درادامه ، به هندلر ريجستر شده ای برخورد می کنیم که پس از هر مرتبه انتخابيک گروه مقاله توسط کاربر ، صدا زده می شود . در چنين مواردی ، سرویس وبMaghalatService.asmx صدا زده شده تا تعداد مقالات منتشر شده در گروهمقالات انتخاب شده توسط کاربر را برگرداند . اولين پارامتر ، گروه مقالهانتخاب شده توسط کاربر است و دومين پارامتر نام تابع callback است که درصورت اجرای موفقيت آمیز متد مربوطه در سرویس وب ، فراخوانده می شود .
      (MaghalatService.GetNumberOfMaghalat(selectedValue, onSuccess [/*:m:3vmb9v4u]
    • در نهایت ، به کمک نتايج برگردانده شده بخش رابط کاربر بطور پويا بهنگام خواهد شد . [/*:m:3vmb9v4u]
    خروجی برنامه فوق که مشابه خروجی ارائه شده در بخش هفتم می باشد در شکل 1 نشان داده شده است .


    شکل 1 :
    نمایش تعداد مقالات منتشر شده در هر گروه
    جمع بندی
    به منظور آشنائی اولیه علاقه مندان با Ajax و تاثير آن دردنيای برنامه نویسی وب ، هشت مقاله بر روی سایت منتشر گردید . در مجموعهمقالات فوق ، پس از بررسی تاثیر متقابل نرم افزار بر وب و بالعکس ، Ajaxرا معرفی کردیم و این که از کجا آمده است و قصد آن پوشش چه مسائلی در عرصهبرنامه های وب است . در ادامه با کنترل XMLHttpRequest آشنا شدیم و بهضرورت استفاده از یک فريمورک برای بکارگيری قابلیت های Ajax در برنامه هایوب اشاره کرديم . در ادامه ، فريمورک ASP.NET Ajax را معرفی و با معماریآن آشنا شدیم . در نهايت به منظور آشنائی عملی با فريمورک فوق دو نمونهمثال کاربردی را با هدف آشنائی با پتانسیل های سمت سرویس دهنده و سرویسگيرنده بررسی کرديم .
    هدف از ارائه مقالات فوق ، آشنائی اوليه با فريمورک ASP.NET Ajax بود . هماينک علاقه مندانی که مطالب منتشر شده را مطالعه کرده اند دارای یک شناختمناسب از فريمورک فوق بوده و می توانند از آن به عنوان یک زیرساخت علمیمناسب در ادامه راه خود استفاده نمایند .
    قطعا" تمامی داستان به این نقطه ختم نخواهد شد و اميدواريم در آيندهبتوانیم با انتشار مقالاتی دیگر با مزايای بکارگیری فریمورک فوق در برنامههای وب بطور کاملا" کاربردی آشنا شويم .


    منبع : [برای مشاهده لینک ها شما باید عضو سایت باشید برای عضویت در سایت بر روی اینجا کلیک بکنید]

اطلاعات موضوع

کاربرانی که در حال مشاهده این موضوع هستند

در حال حاضر 1 کاربر در حال مشاهده این موضوع است. (0 کاربران و 1 مهمان ها)

موضوعات مشابه

  1. پاسخ ها: 0
    آخرين نوشته: جمعه ۳۰ بهمن ۸۸, ۱۷:۳۰
  2. آموزش مقدماتی Ajax (ای جکس)
    توسط PARS در انجمن AJAX/CSS
    پاسخ ها: 2
    آخرين نوشته: سه شنبه ۲۷ بهمن ۸۸, ۲۱:۰۶
  3. 70 دقیقه فیلم آموزشی Ajax به زبان فارسي
    توسط ارسطو در انجمن رایانهcomputer
    پاسخ ها: 0
    آخرين نوشته: جمعه ۰۶ اردیبهشت ۸۷, ۱۹:۴۹
  4. Practical Ajax Projects with Java Technology
    توسط Unknown در انجمن رایانهcomputer
    پاسخ ها: 0
    آخرين نوشته: شنبه ۱۳ مرداد ۸۶, ۱۴:۰۸

مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •