جلسه پنجم آموزش آی جکس Ajax (جلسه پایانی)Reviewed by صابر بوستانی on Sep 20Rating:
جلسه پنجم آموزش آی جکس Ajax (جلسه پایانی)

جلسه پنجم آموزش آی جکس Ajax (جلسه پایانی)

سلام. توی این مطلب میخوایم به دوستان عزیز سورس باران جلسه پنجم آموزش Ajax – از وب سایت آموزش برنامه نویسی سورس باران با شما خواهیم بود. ای جکس (Ajax)، مجموعه‌ای از استانداردها و فناوری‌های وب است که به کمک آنها می‌توان برنامه‌هایی مبتنی بر وب تولید کرد که به آسانی با کاربران تعامل داشته باشند. با استفاده از این فناوریها و با کمک انتقال تکه‌های کوچک داده و اطلاعات از رایانهٔ خادم (Server)، صفحات وب از حالت منفعل خارج می‌شوند و واکنشهایی مناسب با رویدادها انجام می‌دهند. ای‌جکس معماری جدیدی برای برنامه‌های تحت وب است، که با سرعت بسیار زیادی در حال گسترش بوده، و کمتر کاربر اینترنت است که هنوز گذرش به یکی از صفحاتی که با این معماری ساخته شده‌اند نیفتاده، و از قابلیت‌های فوق‌العاده آن بهره‌مند نشده باشد. شروع جلسه پنجم آموزش Ajax در ادامه مطلب…

 

 

ایونت ( رویداد) onreadystatechange :

هنگامی که درخواستی برای سرور ارسال میشود ، خواسته ما این است که بر اساس پاسخی که دریافت میکنیم اعمالی را انجام دهیم . هر زمان که مقدار readyState تغییر کند انگاه ایونت onreadystatechange اتفاق می افتد . خاصیت readyState وضعیتXMLHttpRequest را در خود نگه میدارد .

 

سه ویژگی مهم آبجکتXMLHttpRequest  عبارت اند از :

 

سه ویژگی مهم آبجکتXMLHttpRequest عبارت اند از :

در ایونت onreadystatechange تعیین میکنیم که به هنگام اماده شدن پاسخ سرور چه دستوراتی باید انجام شود . وقتی مقدار readyState  برابر ۴ و مقدار status برابر ۲۰۰ است پاسخ اماده است. مثـــــال :

نکته : ایونت onreadystatechange به ازای هر تغییر در readyState پنچ بار (۴-۰) اتفاق می افتد .

 

استفاده از تابع کالبک (Callback) :

تابع callback (پاسخ) تابعی ست که به عنوان یک پارامتر به بک تابع دیگر ارسال میشود. اگر در وبسایت خود بیش از یک وظیفه AJAX دارید باید برای ساخت آبجکت XMLHttpRequest یک تابع استاندارد بسازید و برای هر وظیفه ای جکس ان را فراخوانی کنید. تابع فراخوان باید حاوی URL و دستورالعملی برای onreadystatechange باشد که احتمالا برای هر فراخوان متفاوت است :

مثـــــال :

 

AJAX PHP مثال :

از ای جکس برای ساخت اپلیکیشن های تعاملی تر استفاده میشود

مثال AJAX PHP

مثال زیر شیوه ارتباط یک صفحه وب با سرور وب, هنگامی که یک کاربر در جعبه ورودی شروع به تایپ کردن میکند را به شما نشان خواهد داد.

3

توضیح مثـــال : در مثال بالا ، هنگامی که کاربر در فیلد ورودی شروع به تایپ کردن میکند ، تابعی به نام “showHint()” به اجرا در می آید . این تابع توسط ایونت(رویداد) onkeyup اجرا میشود .

کد Html :

توضیح کد :

در ابتدا ، ببینید که فیلد ورودی خالیست یا خیر (str.length == 0) . اگر خالیست ، محتوای جانگهدار txtHint را پاک کرده و از تابع خارج شوید . و اگر فیلد ورودی خالی نبود به روش زیر عمل کنید :

  • یک آبجکت XMLHttpRequest بسازید .
  • تابعی بسازید که هنگام اماده بودن پاسخ سرور به اجرا در بیاید .
  • درخواست را برای یک فایل PHP بر روی سرور ارسال کنید .
  • توجه کنید که پارامتر q به php?q=”+str اضافه شده است .
  • متغیر str محتوای فیلد ورودی را در بر میگیرد.

 

فایل PHP – “gethint.php

فایل PHP مجموعه ای از نام ها را چک میکند و نام های متناظر را به مرورگر برمیگرداند .

 

 

نمونه AJAX ASP :

از ای جکس برای ساخت اپلیکیشن های تعاملی تر استفاده میشود . مثال زیر شیوه ارتباط یک صفحه وب با سرور وب, هنگامی که یک کاربر در جعبه ورودی شروع به تایپ کردن میکند را به شما نشان خواهد داد :

3

توضیح مثـــال : در مثال بالا ، هنگامی که کاربر در فیلد ورودی شروع به تایپ کردن میکند ، تابعی به نام “showHint()” به اجرا در می آید . این تابع توسط ایونت(رویداد) onkeyup اجرا میشود.

کد Html :

توضیج کد :

در ابتدا ، ببینید که فیلد ورودی خالیست یا خیر (str.length == 0) . اگر خالیست ، محتوای جانگهدار(placeholder) txtHint را پاک کرده و از تابع خارج شوید . و اگر فیلد ورودی خالی نبود به روش زیر عمل کنید :

  • یک آبجکت XMLHttpRequest بسازید .
  • تابعی بسازید که هنگام اماده بودن پاسخ سرور به اجرا در بیاید .
  • درخواست را برای یک فایل PHP بر روی سرور ارسال کنید .
  • توجه کنید که پارامتر q به php?q=”+str اضافه شده است .
  • متغیر str محتوای فیلد ورودی را در بر میگیرد

 

فایل ASP – “gethint.php :

فایل PHP مجموعه ای از نام ها را چک میکند و نام های متناظر را به مرورگر برمیگرداند.

 

نمونه AJAX Database :

از ای جکس برای ساخت اپلیکیشن های تعاملی تر استفاده میشود . مثالی که در این لینک شیوه تبادل اطلاعات یک صفحه وب از یک دیتابیس را توسط ای جکس نشان میدهد : وقتی کاربر یک کاستومر(مشتری) را از لیست کشویی بالا انتتخاب میکند ، تابعی به نام“showCustomer()” به اجرا در می آید . این تابع توسط ایونت “onchange” اجرا میشود .

تابع showCustomer() اعمال زیر را انجام میدهد :

  • چک میکند که ایا مشتری انتخاب شده است یا خیر
  • یک ابجکت XMLHttpRequest میسازد .
  • تابعی میسازد تا به هنگام اماده شدن پاسخ سرور به اجرا در آید
  • درخواست را برای یک فایل روی سرور ارسال میکند
  • دقت کنید که یک پارامتر (q) (شامل محتوی لیست کشویی) به URL اضافه میشود.

 

صفحه سرور AJAX :

صفحه روی سرور که توسط جاوااسکریپت بالا فراخوان شده است یک فایل ASP به نام “getcustomer.asp” میباشد . فایل سرور را به آسانی میتوان در PHP یا زبان سروری دیگربازنویسی کرد . به یک مثال متناظر در PHP رجوع کنید . کد منبع (سورس کد) “getcustomer.asp” ، جستاری را دردر دیتابیس اجرا میکند و نتیجه را در یک میز HTML بازمیگرداند.

نمونه AJAX XML :

از ای جکس برای ساخت اپلیکیشن های تعاملی تر استفاده میشود . مثال زیر شیوه تبادل اطلاعات یک صفحه وب از یک فایل XML را توسط ای جکس نشان میدهد :

 

توضیح مثال : تابع stateChange()

هنگامی که کاربر بر روی دکمه “Get CD info” کلید میکند ، تابع loadXMLDoc به اجرا در می آید. این تابع یک آبجکت XMLHttpRequest را ساخته ، و تابع را اضافه میکند تا به هنگام اماده شدن پاسخ سرور به اجرا در آمده و درخواست را برای سرور ارسال کند .هنگامی که پاسخ سرور اماده است، یک میزHTML ساخته میشود که گره ها (المنت ها) را از فایل XML استخراج کرده و نهایتا جانگهدار (placeholder) txtCDInfo را که توسط میز HTML از داده های XML پر شده ، اپدیت میکند.