سلام. توی این مطلب میخوایم به دوستان عزیز سورس باران جلسه چهارم آموزش Ajax – ناهم زمان، پاسخ سرور و رویداد و… در ای جکس آشنا خواهید شد . از وب سایت آموزش برنامه نویسی سورس باران با شما خواهیم بود. ای جکس (Ajax)، مجموعهای از استانداردها و فناوریهای وب است که به کمک آنها میتوان برنامههایی مبتنی بر وب تولید کرد که به آسانی با کاربران تعامل داشته باشند. با استفاده از این فناوریها و با کمک انتقال تکههای کوچک داده و اطلاعات از رایانهٔ خادم (Server)، صفحات وب از حالت منفعل خارج میشوند و واکنشهایی مناسب با رویدادها انجام میدهند. ایجکس معماری جدیدی برای برنامههای تحت وب است، که با سرعت بسیار زیادی در حال گسترش بوده، و کمتر کاربر اینترنت است که هنوز گذرش به یکی از صفحاتی که با این معماری ساخته شدهاند نیفتاده، و از قابلیتهای فوقالعاده آن بهرهمند نشده باشد. شروع جلسه چهارم آموزش Ajax – ناهم زمان، پاسخ سرور و رویداد در ای جکس در ادامه مطلب…
جهت مشاهده جلسه چهارم آموزش Ajax – ناهم زمان، پاسخ سرور و رویداد در ای جکس به ادامه مطلب مراجعه نمایید.
ناهم زمان (آسنکرون) – True یا False :
ای جکس (AJAX) مخفف عبارت Asynchronous JavaScript and XML بوده و برای اینکه آبجکت XMLHttpRequest بعنوان AJAX عمل کند ، باید پارامترasync در متد ()open به روی حالت True تنظیم شود.
xmlhttp.open("GET","ajax_test.asp",true);
ارسال درخواست های ناهمزمان پیشرفت بزرگی برای توسعه دهندگان وب است . بسیاری از وظایف و کارهایی که بر روی سرور انجام میشود وقت گیر هستند . قبل از AJAX ، ممکن بود این عملیات باعث هنگ کردن وتوقف اپلیکیشن شود . با وجود ای جکس ، دیگر لازم نیست تا جاوااسکریپت منتظر پاسخ سرور بماند ، بلکه در عوض میتواند :
- در حالی که منتظر پاسخ سرور است ، اسکریپت های دیگری را اجرا کند
- هنگامی که پاسخ اماده شد با آن مقالبه کند
آسینک (async) = True
زمان استفاده از async=true ، تابعی را تعیین کنید تا در هنگام اماده شدن پاسخ در رویداد(ایوِنت) onreadystatechange به اجرا درآید :
مثال :
xmlhttp.onreadystatechange=function() { if (xmlhttp.readyState==4 &&xmlhttp.status==200) { document.getElementById("myDiv").innerHTML=xmlhttp.responseText; } } xmlhttp.open("GET","ajax_info.txt",true); xmlhttp.send();
در بخش های اینده با مطالب بیشتری در مورد onreadystatechange اشنا خواهید شد .
آسینک (Async) = false
برای استفاده از Async=false, پارامتر سوم در متد open() را بهfalse تغییر دهید :
xmlhttp.open("GET","ajax_info.txt",false);
استفاده از async = false به طور کلی توصیه نمیشود اما در مواردی برای بعضی ازدرخواست ها استفاده از ان موردی ندارد. به یاد داشته باشید که تا زمانی پاسخ سرور آماده نباشد جاوا اسکریپت به اجرا ادامه نخواهد داد . اگر سرور مشغول و یا ضعیف باشد ، اپلیکیشن نیز هنگ خواهد کرد و متوقف میشود.
نکته : هنگامی که از Async=false استفاده میکنید ، به خاطر داشته باشید تا از تابع onreadystatechange استفاده نکنید ! تنها کد را بعد از جمله send() قرار دهید.
xmlhttp.open("GET","ajax_info.txt",false); xmlhttp.send(); document.getElementById("myDiv").innerHTML=xmlhttp.responseText;
پاسخ سرور در Ajax :
برای دریافت پاسخ از سوی سرور ، از خاصیت responseText و یا responseXML ابجکت XMLHttpRequest بهره بگیرید.
داده های پاسخ را به عنوان یک رشته (String)درمی آورد : responseText
داده های پاسخ را به عنوان داده های XML در می آورد : responseXML
خاصیت responseText :
اگر پاسخی که از سرور دریافت کرده اید ، XML نمیباشد ، از خاصیت responseText استفاده کنید. این خاصیت پاسخ را به عنوان یک رشته برمیگرداند و شما میتوانید بر این اساس از ان استفاده کنید :
document.getElementById("myDiv").innerHTML=xmlhttp.responseText;
خاصیت responseXML :
اگر پاسخی دریافتی از سرور XML میباشد و شما میخواهید آن را به عنوان یک آبجکت XML تجزیه کنید از خاصیت responseXML استفاده کنید، فایل cd_catalog.xml را درخواست داده و پاسخ را تجزیه کنید :
xmlDoc=xmlhttp.responseXML; txt=""; x=xmlDoc.getElementsByTagName("ARTIST"); for (i=0;i<x.length;i++) { txt=txt + x[i].childNodes[0].nodeValue + "<br>"; } document.getElementById("myDiv").innerHTML=txt;
موفق و پیروز باشید.
راستی! برای دریافت مطالب جدید در کانال تلگرام یا پیج اینستاگرام سورس باران عضو شوید.
- انتشار: ۱۱ شهریور ۱۳۹۴
دسته بندی موضوعات
- آموزش برنامه نویسی
- آموزش کریپتو کارنسی (ارز دیجیتال)
- آموزش متنی برنامه نویسی
- پروژه برنامه نویسی
- فروشگاه
- فیلم های آموزشی
- #F
- ++C
- 3ds max
- Ada
- ADO.NET
- Adobe Flash
- Agile
- Ajax
- AngularJS
- Anime Studio
- apache
- ARM
- Asp.Net
- ASP.NET MVC
- assembly
- AVR
- Azure
- Bootstrap
- Cassandra
- CCNA
- CCNP
- CCSP
- ChatGPT
- Cisco
- CMD
- COBOL
- CSS
- Cython
- Django
- Dreameaver
- Elixir
- EntityFramework
- Erlang
- Flash
- Go
- Groovy
- Haskell
- Htaccess
- HTML
- IOS
- Jade
- jquery
- Kendo UI
- Linq
- Linux
- LUA
- MariaDB
- maya
- Meteor
- MongoDB
- Mono Android
- MonoGame
- Mysql
- NoSQL
- Oracle
- Orchard
- Perl
- php
- PHPMyAdmin
- R
- Rational Rose
- Ruby
- Rust
- Scala
- Scrum Master
- SFML
- SharePoint
- SignalR
- silver light
- SQL Server
- Stimulsoft Reports
- Telerik
- UML
- VB.NET&VB6
- Vue 3
- WPF
- Xml
- آردوینو
- آموزش های پروژه محور
- آیونیک
- اتوکد
- الگوریتم تقریبی
- الگوریتم نویسی و فلوچارت
- امنیت
- اندروید
- اندروید استودیو
- انیمیشن سازی
- بازی سازی با Scratch
- بک ترک
- بیسیک فور اندروید
- پایتون
- پرولوگ
- پریمیر
- جاوا
- جاوا اسکریپت
- جنگو
- جوملا
- دارت
- دلفی
- دوره های رایگان پیشنهادی
- زامارین
- سئو
- ساخت CMS
- ساخت اتوران
- ساختمان داده ها
- سی شارپ
- شبکه و مجازی سازی
- طراحی الگوریتم
- طراحی بازی
- طراحی وب
- فتوشاپ
- فریم ورک codeigniter
- فلاتر
- کاتلین
- کامپایلرها
- کانستراکت
- کریستال ریپورت
- کلوژر
- گوگل آنالیتیکس
- گیت
- لاراول
- مای بی بی
- مایکروسافت پروجکت
- متریال دیزاین
- متلب
- معماری کامپیوتر
- مهندسی اینترنت
- میکروتیک
- نود جی اس
- نیوک
- هوش مصنوعی
- ویبولوتین
- ویژوال استودیو
- یونیتی
- کتاب های آموزشی
- Ada
- Ajax
- Android
- ASP.NET
- ASP.NET Core
- AVR
- clips
- CNC
- COBOL
- CQRS
- Cython
- Dreamweaver
- Elixir
- Entity Framework 4.0
- Erlang
- Go
- Groovy
- Haskell
- LINQ
- Lua
- Matlab
- MFC
- Node.js
- PERL
- php
- PLC
- Prolog
- React
- Rust
- Scala
- SFML
- SharePoint
- silver light
- VHDL
- VMware
- WinJS
- Workflow
- WPF
- XHTML
- Yii Framework
- اتوکد
- اچ تی ام ال
- اسمبلی
- اکتیو ایکس
- الگوریتم و فلوچارت
- انگولار
- اوبونتو
- اوراکل
- بازی سازی
- بانک اطلاعاتی
- برنامه نویسی سوکت
- برنامه نویسی موبایل
- بک ترک
- پاسکال
- پایان نامه
- پایتون
- پرولوگ
- جاوا
- جاوا اسکریپت
- جی کوئری
- حوملا
- داده کاوی
- دلفی
- رباتیک
- روبی
- زبان ماشین
- سئو
- ساختمان داده ها
- سایر کتاب ها
- سخت افزار
- سوئیفت
- سی اس اس
- سی پلاس پلاس
- سی شارپ
- سیستم عامل
- سیستم های خبره
- شبکه و مجازی سازی
- شبیه سازی کامپیوتر
- طراحی الگوریتم
- فتوشاپ
- فریم ورک گتنا
- کاتلین
- کالی لینوکس
- کریستال ریپورت
- گزارش کارآموزی
- گوگل
- لیسپ
- متلب
- مقاله
- مهندسی نرم افزار
- نیوک
- هوش مصنوعی
- وب مستر
- ویژوال بیسیک
- نرم افزار و ابزار برنامه نویسی
- وردپرس