خوش آمديد!
16:42 سه شنبه 2 خرداد ماه ، 1391
تبلیغات راست
پکیج آموزش جامع دوره مهندسی شبکه مایکروسافت MCSE
خبر خوان

خبر خوان

دسته بندی مقالات
وب
  مقالات HTML
  مقالات PHP
  مقالات ASP.NET
  مقالات CSS
  مقالات XML
  مقالات JavaScript
  مقالات CMS
  مقالات Dreamweaver
  مقالات ColdFusion
  مقالات IIS
  مقالات Apache
  مقالات AJAX
  مقالات Flex
  مقالات AIR
  مقالات Expression Web
  مقالات SEO
  مقالات عمومی وب
برنامه نویسی
  مقالات C / C++
  مقالات C#
  مقالات VB.NET
  مقالات VB6
  مقالات دلفی
  مقالات VbScript
  مقالات اکشن اسکریپت
  مقالات Python
  مقالات سیلور لایت
  مقالات عمومی برنامه نویسی
سخت افزار
  مقالات CPU
  مقالات RAM
  مقالات دیسک سخت
  مقالات MainBoard
  مقالات کیبورد
  مقالات کارت گرافیک
  مقالات چاپگر
  مقالات عمومی سخت افزار
سیستم عامل
  مقالات ویندوز سون
  مقالات ویندوز ویستا
  مقالات ویندوز XP
  مقالات لینوکس
  مقالات سیستم عامل مک
  مقالات عمومی سیستم عامل
گرافیک دو بعدی
  مقالات فتوشاپ
  مقالات Illustrator
  مقالات Corel
  مقالات Painter
  مقالات QuarkXpress
  مقالات InDesign
  مقالات Fireworks
  مقالات Lightroom
  مقالات Bridge
  مقالات آکروبات
  مقالات فلش
  مقالات Expression Medial
  مقالات Expression Blend
  مقالات عمومی گرافیک دو بعدی
گرافیک سه بعدی و انیمیشن سازی
  مقالات تردی مکس
  مقالات مایا
  مقالات اتوکد
  مقالات عمومی گرافیک سه بعدی
میکس و مونتاژ
  مقالات After Effects
  مقالات پرمیر
  مقالات ادیوس
  مقالات SoundBooth
  مقالات Apple Reason
  مقالات Corel Video Studio
  مقالات Audition
  مقالات Pro Tools
  مقالات FLStudio
  مقالات SoundFordge
  مقالات عمومی ویرایش صوت و فیلم
پایگاه داده
  مقالات SQL Server
  مقالات اکسس
  مقالات MySQL
  مقالات اراکل
  مقالات عمومی پایگاه داده
شبکه
  مقالات اکسچنج سرور
  مقالات SharePoint Server
  مقالات ویندوز سرور 2003
  مقالات ویندوز سرور 2008
  مقالات ISA Server
  مقالات VMware
  مقالات MS Virtualization
  مقالات MCSE
  مقالات MCITP
  مقالات CCNA
  مقالات CCNP
  مقالات CCIE
  مقالات مایکروسافت System Center
  مقالات Wireless
  مقالات Wi-Fi
  مقالات WiMax
  مقالات Citrix
  مقالات DSL
  مقالات BizTalk
  مقالات Commerce Server
  مقالات Forefront
  مقالات Groove
  مقالات Communication Server
  مقالات Project Server
  مقالات Storage Server
  مقالات امنیت شبکه
  مقالات VoIP
  مقالات عمومی شبکه
آفیس و برنامه های تجاری
  مقالات Word
  مقالات Excel
  مقالات Access
  مقالات PowerPoint
  مقالات Visio
  مقالات OneNote
  مقالات Publisher
  مقالات Outlook
  مقالات Amalga
  مقالات Dynamics AX
  مقالات Dynamics CRM
  مقالات Dynamics GP
  مقالات Dynamics NAV
  مقالات Dynamics POS
  مقالات Dynamics RMS
  مقالات Dynamics SL
  مقالات عمومی آفیس و برنامه های تجاری

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

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

در این بخش برنامه نویسی غیرهمزمان در برنامه های وب و شی XMLHttpRequest  را بررسی میکنیم.



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

عناصر Ajax شکل ۱ : عناصر Ajax

جاوا اسکریپت در Ajax دارای یک نقش محوری و تعیین کننده است و می توان آن را به منزله یک نیروی چسبنده در نظر گرفت که سایر فناوری ها را با هم مرتبط می نماید . زمانی که یک برنامه به داده نیاز داشته باشد ، از شی XMLHttpRequest به منظور ایجاد درخواست به سرویس دهنده استفاده می گردد . پس از برگرداندن داده توسط سرویس دهنده ، از فناورهای DOM ( برگرفته شده از Document Object Model )  و CSS ( برگرفته شده از cascading style sheets  )  برای بهنگام سازی رابط کاربر مرورگر به صورت پویا استفاده می گردد .

برنامه نویسی وب غیرهمزمان
حرف A موجود در Ajax از  Asynchronous گرفته شده است که در زبان فارسی به غیرهمزمان و یا ناهمگام ترجمه می شود و بیانگر یکی از قابلیت های مهم و کلیدی الگوی برنامه نویسی Ajax است .
در برنامه های وب سنتی ، تعامل کاربر با برنامه بطور پیوسته نبوده و در مقاطع زمانی خاصی لازم است کاربر در انتظار اتمام یک عملیات باشد . زمانی که کاربر عملیات خاصی نظیر کلیک بر روی دکمه موجود بر روی یک فرم را انجام می دهد ، یک درخواست مبتنی بر پروتکل HTTP برای سرویس دهنده وب ارسال می گردد . در ادامه ، سرویس دهنده درخواست را پردازش ( به عنوان نمونه ، انجام برخی محاسبات و یا عملیات مرتبط با بانک های اطلاعاتی ) و نتایج تولید شده را در قالب یک صفحه وب با محتویات جدید برای سرویس گیرنده ارسال می نماید .
نحوه عملکرد صفحات وب متاثر از ماهیت stateless بودن پروتکل HTTP است . با توجه به این که تمامی منطق برنامه معمولا” بر روی سرویس دهنده قرار می گیرد  ، نقش مرورگرها صرفا” نمایش بخش رابط کاربر و یا اصطلاحا” اینترفیس برنامه است . سرویس دهنده ، چرخه حیات یک صفحه وب را بطور کامل طی می نماید و برای مرورگر تگ های HTML ، کدهای CSS و سایر منابع مورد نیاز را جهت بازخوانی و نمایش مجدد صفحه ارسال می نماید . ماهیت فرآیند فوق بگونه ای است که در دراز مدت نمی تواند رضایت خاطر کامل کاربران را  حداقل در سطح بخش رابط کاربر برنامه تامین نماید . در این مدل کاربران از یک الگوی  stop-start-stop تبعیت می نمایند . کاربران در برخی موارد و با توجه به شرایط حاکم بر برنامه بطور موقت و از روی ناچار ارتباط خود را با برنامه از دست داده و می بایست در انتظار بهنگام سازی صفحه وب درخواستی بمانند .
شکل ۲ ، نحوه عملکرد برنامه های وب در یک فرآیند همزمان را نشان می دهد .


نحوه عملکرد برنامه های وب در یک فرآیند همزمان


شکل ۲ : نحوه عملکرد برنامه های وب در یک فرآیند همزمان
( عدم تعامل کاربر با برنامه در زمان درخواست های HTTP )

در ASP.NET زمانی که یک صفحه داده را برای خود و یا حتی صفحه ای دیگر ارسال می نماید ، یک postback اتفاق می افتد . در حین این فرآیند ، وضعیت جاری صفحه به همراه کنترل های موجود بر روی آن جهت پردازش برای سرویس دهنده ارسال می گردند . مکانیزم postback با هدف تامین خواسته هائی نظیر  نگهداشت وضعیت صفحه و کنترل های سرویس دهنده موجود بر روی آن دنبال می شود . فرآیند فوق گرچه در نهایت می تواند منجر به refresh صفحه وب و نمایش محتویات جدید برای کاربر گردد ولی هزینه انجام آن زیاد خواهد بود چراکه اولا” یک حجم داده می بایست برای سرویس دهنده ارسال گردد و ثانیا” ارتباط منطقی کاربر با برنامه از بین خواهد رفت .

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

نحوه عملکرد برنامه های وب در یک فرآیند غیرهمزمانشکل ۳ : نحوه عملکرد برنامه های وب در یک فرآیند غیرهمزمان
(ارسال درخواست های HTTP از طریق Ajax engine برای سرویس دهنده)


در هسته Ajax engine ، شی مهم و کلیدی  XMLHttpRequest قرار دارد که در ادامه با آن بیشتر آشنا می شویم .

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

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

مسئولیت ارسال یک درخواست غیرهمزمان به تابع 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

ارسال درخواست غیرهمزمان

 

توضیحات

     

  • متد sendRequest ،‌ یک پارامتر که در واقع URL مربوطه به درخواست HTTP است را دریافت می نماید .

  • مرحله اول : یک ارتباط غیرهمزمان ایجاد می گردد ( در نظر گرفتن مقدار true به عنوان سومین پارامتر در زمان فعال کردن ارتباط نشان دهنده یک ارتباط غیرهمزمان است ).

  • مرحله دوم : پس از مقداردهی اولیه ارتباط مورد نظر ، به خصلت onreadystatechange شی XMLHttpRequest یک تابع محلی با نام onCallback نسبت داده می شود . توجه داشته باشید که فراخوانی تابع فوق به صورت غیرهمزمان است . تابع Callback مشخص می نماید که چه زمانی درخواست تکمیل و یا بهنگام شده است .

  • مرحله سوم : پس از مشخص کردن نوع محتوا در هدر درخواست ، با استفاده از متد Send شی XMLHttpRequest  ، درخواست HTTP برای سرویس دهنده ارسال می گردد .

     

فراخوانی تابع  onCallback
هر مرتبه ای که وضعیت ready تغییر می یابد ، از تابع callback جهت ایجاد یک درخواست غیرهمزمان استفاده می گردد . در مرحله نهائی ، وضعیت بررسی و بخش رابط کاربر به همراه محتویات برگردانده شده از صفحه ArticleSummery.htm ، بهنگام می گردد.

توضیحات

     

  • وضعیت درخواست از طریق خصلت readyState برگردانده می شود .

  • مرحله اول : در صورتی که مقدار خصلت readyState شی XMLHttpRequest برابر با مقدار ۴ باشد ، درخواست به اتمام رسیده است .

  • مرحله دوم : در ادامه ، پاسخ برگردانده شده از سرویس دهنده بررسی می شود تا این اطمینان حاصل گردد که همه چیز با موفقیت انجام شده است .مقدار کد وضعیت ۲۰۰ مربوط به پروتکل HTTP ،  نشان دهنده این موضوع است که درخواست با موفقیت انجام شده است .

  • مرحله سوم :  در نهایت  ،  خصلت  innerHTML مربوط به عنصر span متاثر از محتویات برگردانده شده ، بهنگام می گردد .

     

کد زیر ، محتویات صفحه Ajax1.aspx را بطور کامل نشان می دهد .

شکل  ۴ خروجی مثال فوق را نشان می دهد .

ایجاد یک درخواست Http غیرهمزمان توسط شی XMLHttpRequestشکل ۴ : ایجاد یک درخواست Http غیرهمزمان توسط شی XMLHttpRequest


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

خلاصه
در این مقاله با برنامه نویسی وب همزمان و غیرهمزمان و نحوه عملکرد شی  XMLHttpRequest آشنا شدیم . هدف از بیان موارد فوق ، صرفا” آشنائی  با الگوی برنامه نویسی وب مبتنی بر Ajax بود .




ارسال شده در مورخه : چهارشنبه، 14 بهمن ماه ، 1388   چاپ مطلب

آموزش فتوشاپ ، آموزش رتوش


مرتبط با موضوع :

 Ajax : تحولی بزرگ در عرصه وب ( بخش هشتم )  [چهارشنبه، 14 بهمن ماه ، 1388]
 Ajax : تحولی بزرگ در عرصه وب ( بخش هفتم )  [چهارشنبه، 14 بهمن ماه ، 1388]
 Ajax : تحولی بزرگ در عرصه وب ( بخش ششم )  [چهارشنبه، 14 بهمن ماه ، 1388]
 Ajax : تحولی بزرگ در عرصه وب ( بخش پنجم )  [چهارشنبه، 14 بهمن ماه ، 1388]
 Ajax : تحولی بزرگ در عرصه وب ( بخش سوم )  [چهارشنبه، 14 بهمن ماه ، 1388]
 Ajax : تحولی بزرگ در عرصه وب ( بخش دوم )  [چهارشنبه، 14 بهمن ماه ، 1388]
 Ajax : تحولی بزرگ در عرصه وب ( بخش اول )  [چهارشنبه، 14 بهمن ماه ، 1388]
 دردسر آجاکس با موتورهای جستجو  [يكشنبه، 22 آذر ماه ، 1388]
 Ajax (آژاکس)  [سه شنبه، 19 آبان ماه ، 1388]


تبلیغات چپ
پکیج Windows Server 2008 MCITP Enterprise Administ
آخرین مقالات
· ۱۴ تغییراتی احتمالی که در iPhone 5 خواهید دید!
· روشهایی برای افزایش عمر باتری موبایل
· p1000 پرفروش ترین تبلت سامسونگ
· خالی کردن فضای هارد دیسک
· ۷ دلیل برای خرید مطمئن سامسونگ Galaxy Note
· معرفی لایف بوک ها ویژگی های مربوط به آنها
· معرفی ۱۰ فناوری برتر ماه گذشته در عرصه آی تی
· معرفی دلایلی برای خرید گوشی با قابلیت ویندوز فون
· SCX-4729FD چاپگر چندکاره سامسونگ
· تعریف سیستم عامل اندروید و مهمترین ویژگی های آن
· لپ تاپ های Samsung Series 7 Game 3D
· پرطرفدارترین موبایل های هوشمند تا بهار ۲۰۱۲
· Sony Unveila Xperia Sola و صفحه نمایش شناور
· کنترل دستگاه اندرویدی توسط دسکتاپ
· 10 تبلت برتر بهار سال 2012
· Optimus 3D Max دومین گوشی سه بعدی ال جی به عنوان محصولی بی همتا
· G6-1160EE لپ تاپ باقابلیت و پرمخاطب HP
· راه های افزایش امنیت در اینترنت
· آموزش مراحل پاک کردن آرشیو یاهو مسنجر
· مانیتورهایی مخصوص بازی های ویدئویی و گیمرها
· نکات مهم در مورد سرچ گوگل
· معرفی بهترین تبلت های بازار از نظر کیفیت نمایشگر
· معرفی رایانه ها و تبلت های سازگار با ویندوز ۸
· ویژگی های Galaxy note 10.1 شرکت سامسونگ
· مهمترین دلایل خرابی سریع لپ تاپ ها

[ موارد بیشتر در بخش اخبار و تازه ها ]
پربیننده ترین مقالات
· استاندارد های ISO/IEC 17799 و BS7799-2
· توصیه های مهم امنیتی در مورد لینوکس و یونیکس
· گرما در cpuها
· معماری client/Server در اینترنت
· آشنایی با سیستم فایل GNU/Linux
· یک MAC BOOK PRO جدید در بازار ایران
· معرفی دو مدل لپ تاپ با قابلیت سونی سری F
· F137HG/B، لپ تاپ سایز بزرگ سونی در بازار داخلی
· اندر احوالات کرک و کپی رایت
· EE31FX/BJ، لپ تاپ ارزان قیمت سونی در بازار داخلی
· معرفی z216 FX/L از لپ تاپ های سونی
· مدل MD313LL/A ، Macbook ارزان قیمت در بازار داخل
· تاریخچه کامپیوتر
· مشاهده آنلاین سوابق بیمه شدگان
· چگونگی اختصاص دادن یک آدرس IP استاتیک به یک رایانه در شبکه در ویندوز Xp ، Vista یا Seven
· آشنایی با روتر و سوئیچ(router and switch)
· الگوریتم های مرتب سازی آرایه ها
· تاریخچه ی پیدایش زبان های برنامه نویسی شی گرا
· GPS چیست؟
· به روز رسانی ویندوز 7 با نرم افزار Windows Update
· پایگاه داده های سیار Mobile database
· بازیابی رمز عبور در ویندوز 7
· معماری سرویس گرا Service Oriented Architecture چیست؟
· انتقال اطلاعات با Replication در SQL Server
· آموزش نرم افزار Virtual Box

[ موارد بیشتر در بخش اخبار و تازه ها ]
مقالات تصادفی
· 73% ساکنان زمین صاحب موبایل می شوند
· سرویس بازیابی تماس های نا موفق ایرانسل
· آشنايی بيشتر با سی دی رايتر
· گوگل و ساخت نرم افزار شناسايی افراد از چهره
· کنسرتی با موبایل
· وقتی نمی توان فایلی را پاک کرد!
· لپ تاپ سبک و پرفروش Acer
· آیا بازیهای کامپیوتری وجهه ورزش را خواهند یافت؟
· کاربرد زبان های برنامه نویسی در هوش مصنوعی
· Nitro HD هوشمند جدید ال جی با نسخه جدید آندرویید
· استفاده وسيع مايكروسافت از Silverlight در پروژه هاي جديد خود
· بازار فناوری اطلاعات کشور و تحریم های جهانی
· دنیای گسترده مادربردها
· مشتریان دردسرساز طراحی وب
· Apple و اولین مانیتوری که از طریق پورت Thunderbolt به کامپیوتر متصل میشود
· کدام مرورگر باتری لپ تاپ شما را کمتر مصرف می کند؟
· تعریف home page
· مایکروسافت نرم افزار امنیتی رایگان عرضه کرد!
· آشنایی با روترهای سیسکو
· راهنمای نصب Visual Studio 2010
· آیا سایت شما در آی پد درست دیده می شود؟
· نحوه انتخاب یک رایتر
· سایبرمتریک : افقی نوین در پژوهش های اطلاع رسانی
· جهش یا سقوط ؟
· بررسی ۳ مدل از جدیدترین لپ تاپ سونی در بازار ایران

[ موارد بیشتر در بخش اخبار و تازه ها ]
امتیاز دهی به مطلب
امتیاز متوسط : 1
تعداد آراء: 1


لطفا رای مورد نظرتان را در مورد این مطلب ارائه نمائید :

عالی
خیلی خوب
خوب
متوسط
بد

موضوعات مرتبط

مقالات عمومی وب

آموزش مایا ، آموزش Maya