نماد سایت بلاگ ایران هاست

Ajax چیست؛ آشنایی با کاربرد ajax

ajax چیست

اگر شما به تازگی به دنیای توسعه وب و طراحی آن وارد شده باشید احتمالا مفهوم AJAX به گوش شما خورده است. AJAX یا ایجکس تکنولوژی جدیدی است که کمک می کند بدون بارگذاری کل صفحه، محتوای بخش تغییر داده شده را آپدیت کنیم. برای اینکه به سوال ajax چیست پاسخ دهیم تا انتهای مقاله با ما باشید. در ادامه مقاله به نحوه کار ایجکس و اجزای آن می پردایم.

ایجکس یا ajax چیست ؟

AJAX مخفف چیست؟ عبارت AJAX مخفف کلمات Asynchronous JavaScript and XML  می باشد و تکنیکی جهت ساخت صفحات پویا و سریع است که می تواند بدون لود شدن کل صفحه، بخشی از آن را به آپدیت و آن را به سرور اختصاصی که سایت بر روی آن قرار دارد ارسال کند. در صورتیکه در صفحات وب کلاسیک با تغییر بخشی از صفحه، کل آن بایستی لود شود.

تکنولوژی ایجکس می تواند کاری کند که هنگام تغییر یک صفحه به جای لود شدن کل آن  فقط بخش تغییر داده شده لود شود. در این محیط برنامه‌نویسی، مجموعه ای از فناوریها وجود دارند که مجموعا تحت عنوان ایجکس شناخته می شوند. به عبارت دیگر ایجکس مفهومی مشابه با برنامه نویسی کلاینت-سرور است. با برنامه نویسی کلاینت-سرور، میزان انتقال داده ها بر روی یک نرم افزار کاربردی ترمینال به حداقل ممکن می رسد، زیرا تنها داده های ضروری مابین کلاینت و سرور جابجا خواهند شد. با Ajax نیز تنها داده های ضروری مابین کلاینت و سرور وب جابجا می شوند. این وضعیت استفاده از شبکه و پردازش بر روی کلاینت را به حداقل می رساند.

 

بیشتر بخوانید : client چیست

 

تاریخچه فناوری ajax

فناوریهایی که Ajax را تشکیل می دهند علیرغم تمام جذابیتها و مزایای خود واقعا جدید نیستند. توانایی برقراری ارتباط با سرور، از طریق یک فریم مخفی و بدون ارسال صفحه اصلی به سرور، از مدتها پیش شناخته شده است.

برقراری ارتباط مابین کلاینت و سرور، از زمان معرفی توانایی Internet Explorer برای اسکریپت نویسی کنترلهای ActiveX بر روی مرورگر کلاینت و مولفه های MSXML (که هر دو آنها به اواخردهه ۱۹۹۰میلادی مربوط می شوند) قابل دسترسی بوده است.

مواردی که قبل از کار با ایجکس باید بدانید 

به شما پیشنهاد می شود برای کسب اطلاعات در حوزه جاوا اسکریپت مقاله جاوا اسکریپت چیست و برای کسب اطلاعات در حوزه زبان برنامه نویسی css  ما را مطالعه نمایید.

نمونه سایت هایی که با ایجکس طراحی شده اند 

Googel Maps: توانایی مشاهده یک نقشه و بزرگنمایی قسمتهای مختلف آن بدون نیاز به یک Postback واقعاً هیجان انگیز است. این سرویس گوگل با عرضه خود دنیای برنامه نویسی را با یک طوفان مواجه کرد.

توجه: با قرار دادن عبارت ایجکس در وبلاگ ترافیک آن افزایش خواهد یافت .

 

اجزا تشکیل دهنده ایجکس

به مرورگر  امکان می دهد که تا به یک سرور Back-end ارتباط برقرار کند. این آبجکت به مرورگر اجازه می دهد تا بدون نیاز به یکPostback از تمام صفحه وب، با سرور ارتباط برقرار نماید. با Internet Explorer این قابلیت توسطه مولفه MSXML ActiveX فراهم شده است. در مورد Mozilla Firefox و سایر مرورگر های وب، این قابلیت با آبجتکی که XmlHttReques نیز نامیده می شود تامین می گردد. کتابخانه های جاوا اسکریپت سمت کلاینت، تفاوتهای مابین محیطهای مختلف مرورگر را پنهان می کنند. گاهی اوقات این ارتباطات از طریق یکFRAME یا IFRAME مخفی برقرار می شوند.

قابلیتهایی برای برقراری ارتباط با سرور Back-end را تامین می کند. جاوا اسکریپت باید نسخه ۱/۵ یا بالاتر ازآن باشد. با وجود آنکه جاوا اسکریپت بطور اخص الزامی نمی باشد، اما از نظر اینکه  تنها محیط اسکریپ نویسی سمت کلاینت است که تمام مرورگرهای وب مدرن از آن پشتیبانی می کنند، مورد نیاز می باشد. زبانهای اسکریپت نویسی سمت کلاینت دیگری نیز وجود دارند، اما در تمامی مرورگرها پشتیبانی نمی شوند.

مرورگر باید از توانایی بروزرسانی دینامیک عناصر فرم پشتیبانی نماید و توانایی انجام اینکار با یک شیوه استاندارد از طریق پشتیبانی از(DOM(Document Object Model فراهم می گردد.

استفاده از XML توانایی برقراری ارتباط با سرور وب دریک مکانیزم استاندارد را فراهم می کند. شرایطی وجود دارند که درآنها از (JSON (JavaScript Object Notation بجای XML مستقیم برای نشان گذاری (Notation) ارتباط استفاده می شود.

اجرای Ajax یک مرورگر وب باید دارای چه شرایطی باشد؟

نرم افزارهای کاربردی ایجکس در تمام نسخه های مرورگرها قابل دسترسی نخواهند بود. درحالیکه Internet Explorer6،Firefox5،۱ وOpera5،۸ (ونسخه های بالاتر از آنها) امکان پشتیبانی از این نرم افزارهای کاربردی را فراهم می کنند،نسخه های قدیمی تر آنها می توانند در این زمینه دچار مشکل باشند. اگر از اینترنت اکسپلورر چیست برروی ویندوز استفاده می کنید، و  ActiveXفعال نشده باشد احتمالاً با مشکلاتی مواجه خواهید شد.

نحوه ی کار Ajax به چه صورت است؟ 

بعد از اینکه رویدادی اتفاق می افتد، ابتدا یک شی XMLHTTP ساخته شده و در خواست به شکل Httprequest به سرور ارسال می شود.

سرور Httprequest را پردازش کرده پاسخ را ایجاد و داده ها را به مرورگر بازمی گرداند.

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

AJAX به پیشنهاد گوگل در سال ۲۰۰۵ ایجاد گردید.زمانی که شما در کادر جستجوی گوگل شروع به تایپ می کنید ، جاوا اسکریپت درخواست را به شکل لحظه ای ارسال کرده و سرور لیستی از پیشنهادات را باز می گرداند.

مزایای ایجکس

مزایای استفاده از ایجکس در نرم افزارها عبارتند از:

ASP.NETAjax4.0 با مرورگرهای زیر سازگار است :

معایب Ajax

کاربرد ajax در نرم افزارهای کاربردی کلاسیک مبتنی بر وب

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

منظور از ناهمزمانی در تکنولوژی ajax چیست ؟

ایجکسامکان انجام فراخوانیهای ناهمزمان (Asynchronous) ازیک سرور وب را بوجود می آورد. این وضعیت به مرورگر کلاینت امکان می دهد تا از انتظار برای رسیدن تمام داده ها، پیش از آنکه کاربر بتواند کار دیگری را انجام دهد، اجتناب نماید.

بخاطر عدم انجام یک Postback کامل و همچنین عدم ارسال تمام داده های فرم به سرور ،استفاده از شبکه به حداقل رسیده و عملیات بطور سریعتری انجام می شوند. درسایتها و محلهایی با مسیرهای محدود شده برای انتقال داده ها، این ویژگی می تواند عملکرد شبکه را بطور چشمگیری بهبود بخشد.

با یک Postback کامل، ممکن است کاربر سابقه جایی که در آن بوده است را از دست بدهد. ممکن است کاربر در حالیکه در پایین یک صفحه قرار دارد بر روی کلید Submit کلیک نماید و در نتیجه به بالای صفحه هدایت شود. با ایجکس، هیچ Postback کاملی وجود ندارد. کلیک بر روی کلید Submit در یک نرم افزار کاربردی که از ایجکس استفاده می کند، به کاربر اجازه می دهد تا جلسه  خود را حفظ نماید. وضعیت کاربر نگهداری می شود وکاربر دیگر نیازی نخواهد داشت که تمام صفحه را به پایین بلغزاند تا به موقعیتی که پیش از کلیک بر روی Submit داشته است باز گردد.

منظور از پردازش محدود بر روی سرور با ajax چیست؟

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

مثال هایی از کدنویسی با Ajax 

[pre]

xmlhttp.open(“GET”,”ajax_info.txt”,true);
xmlhttp.send(); [/pre]

جهت ارسال درخواست به سرور از متدهای بالا استفاده می شود.

جهت دریافت یک پاسخ از سرور از شی XMLHttpRequest  استفاده می شود [pre]document.getElementById(“myDiv”).innerHTML=xmlhttp.responseText;[/pre]

در ادامه مثالی جامع وجود دارد که نحوه ی ارسال درخواست کاربر زمانیکه وی در یک کادر جستجو عبارت خود را تایپ می کند را نشان می دهد : [pre]

function showHint(str)
{
var xmlhttp;
if (str.length==0)
{
document.getElementById(“txtHint”).innerHTML=””;
return;
}
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject(“Microsoft.XMLHTTP”);
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById(“txtHint”).innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open(“GET”,”gethint.asp?q=”+str,true);
xmlhttp.send();
} [/pre]

با وارد شدن عبارت توسط کاربر تابع Showhint فراخوانی می شود و درخواست را به سرور ارسال می کند.

ایجکس می تواند با دیتابیس و فایل های XML  نیز محاوره داشته باشد.

خروج از نسخه موبایل