تبلیغات
کامپیوتر - آژاكس – ای جكس (Ajax)

آژاكس – ای جكس (Ajax)

نویسنده :سهراب
تاریخ:15 بهمن 87-19:29

 

 

در واقع Ajax سرنام عبارت Asynchronous JavaScript And XML و روشی جدید از استاندارهای موجود كه با استفاده از آن می توان برنامه های وب را سریعتر ، بهتر و كاربر پسندتر ساخت . Ajax یك زبان مستقل نیست اما بر مبنای JavaScript و HTTP پایه ریزی شده است .
Ajax به عبارتی یك تكنیك جدید برای هر چه بهتر و سریعتر كردن برنامه های محاوره ای - تعاملی - تحت وب هست و برای دریافت یا ارسال داده ها بین مرورگر و وب سرور از جاواسكریپت استفاده می كند . به این صورت كه به جای لود تمام صفحه وب تنها قسمتی از صفحه را كه در آن توسط كاربر تغییر ایجاد شده است ، لود می كند . به این ترتیب سرعت لود و بارگذاری صفحات بالا می رود .
تكنولوژی Ajax
Ajax تكنولوژی هست كه برروی مرورگر شما اجرا می شود و از یك ارتباط نامتقارن – غیر همزمان - برای انتقال داده ها (درخواست های HTTP ) بین مرورگر و وب سرور استفاده می كند . به عبارتی دیگر این اجازه را به صفحه وب می دهد كه فقط داده ها و اطلاعات كوچك مورد نیاز را به جای تمام صفحه وب از وب سرور در خواست كند . از این روش طراحی وب كه user friendly تر هست ، برای مواردی كه تعامل زیاد با كاربر ( صفحات محاوره ای ) مدنظر هست مثل میل باكس ها ( یه لحاظ سرعت در عملیات ) می توان استفاده كرد .

Ajax یك استاندارد باز
Ajax بر پایه استاندارده های باز زیر پیاده سازی شده است :
 JavaScript
 XML
HTML
CSS
این استاندارد های در Ajax بسیار خوب تعریف شده اند و همچنین در اكثر مرورگر های به خوبی پشتیبانی می شوند . در واقع برنامه های كاربردی Ajax یك مرورگر و یك پلتفرم كاملآ مستقل هستند . و سالهاست كه كاربران از این استاندارد ها ( شاید به صورت جداگانه ) استفاده می كردند و آن را توسعه می دهند . همان طور كه قبلآ ذكر شد Ajax یك زبان مستقل نیست و هر كسی می تواند سایت خود را از HTML ،CSS خام به این تكنولوژی ارتقاء دهد .
چگونه Ajax از این استانداردها استفاده می كند
در صفحات وب سنتی وقتی شما یك فرم را پر كرده و دكمه ارسال را می زنید این صفحه با استفاده از HTML اطلاعات شما را به وب سرور ارسال می كند . بعد وب سرور اطلاعات شما را پردازش كرده و نتیجه آن را در یك صفحه جدید برای شما ارسال می كند . در نتیجه به خاطر پاسخی كه وب سرور هر بار در یك صفحه جدید ارسال می كند ، سرعت پاسخ به این درخواستها پایین و كاربر پسند نیست . به كمك Ajax می توان به این درخواستها ( ارسال و دریافت اطلاعات از سریق HTTP ) با استفاده از JavaScript در پشت صحنه صفحه وب پاسخ داد و تنها همان قسمت از اطلاعاتی كه باید در وب سرور پردازش شود را به وب سرور ارسال و پاسخش را دریافت كرد و نهایتآ نتیجه را نمایش داد . به این ترتیب قسمتهایی از صفحه كه ثابت هست نیازی به دوباره لود شدن ندارند .
نقش XML هم در این بین تعریف قالبی برای دریافت اطلاعات از سرور هست ، اگر چه از هر قالب متنی ( Text Plain ) می توان برای این كار استفاده كرد .
هم اكنون گوگل و یاهو برای صندوق پستی خود از این تكنولوژی استفاده می كنند .

تعریف آژاکس
همانطور که گفته شد آژاکس یک فناوری است. آژاکس متشکل از چندین فناوری دیگراست که هر کدام در مسیری جدید و قوی می آیند. آژاکس از بهم پیوستن پنچ مورد زیر بوجود آمده است:
1 . ارائه استاندارد پایه با استفاده از XHTML و CSS .
2 . نمایش پویا و تعامل با کاربر با استفاده از DOM(Document Object Model)
3 . دستکاری و تبادل اطلاعات با استفاده از XML و XSLT.
4 . بازیابی غیر همزمان داده ها با استفاده از XMLHttpRequest.
5 . تقید همه چیز با هم (JavaScript)
مدل قدیمی یا در واقع کلاسیک وب همانند این کار می کرد که بیشترین فعالیت های کاربربا واســط (Interface) ، یــک درخــواست HTTP بود که به سـرور برگشت داده می شد. سرور بعضی پردازش ها از قبیل بازیابی اطلاعات را انجام می داد و آنگاه یک صفحه HTML به سمت مشتری باز می گرداند. این یک مدل اقتباس گرفته شده از اصل وب ــ که از رسانه ابر متن (HyperText) استفاده می کند ــ است.
اما بطوریکه مشتاقان اساس آزمون کاربر می دانند ، چقدر ما وب را عالی میسازیم بدون اینکه نیازی به این عالی سازی برای نرم افزارهای کاربردی داشته باشیم؟
این رویکرد جدید مفاهیم فنی زیادی را میسازد اما یک آزمون کاربر عالی نمی سازد. تا زمانی که سرور در حال انجام کارهای خودش است کاربر باید چکاری انجام دهد؟ درست است ، او باید صبر کند و در هر گام یک عمل ، باید بیشتر زمان را صبر نماید.
واضح است اگر ما یک طراح وب بودیم نبایستی در این مدت کاربر را منتظر نگه داریم. یکبار واسط (Interface) در سمت مشتری بارگذاری می شود ، چرا باید فعل و انفعال کاربر دچار مکث شود در هر باری که برنامه کابردی نیاز به چیزی از سرور دارد ؟ در حقیقت چرا کاربر باید همیشه برنامه را در حال رفتن به سرور مشاهده کند؟
به چه سبب آژاکس متمایز است ؟
یک برنامه کاربردی آژاکس طبیعت Start-Stop-Start-Stop فعل و انفعال در وب را بااستفاده از مطرح کردن واسطی میان کاربر و سرور به نام موتور آژاکس بر طرف نموده است. بنظر میرسد که مانند اضافه کردن یک لایه به برنامه کاربردی است تا برنامه را کمتر به سمت سرور فرستاده و از آن پاسخ دریافت نمایید. اما برعکس این حالت درست می باشد.
درابتدای یک جلسه با یک سرور بجای بارشدن صفحه ابتدا مـرورگر موتور آژاکس را بار می نماید که معمولا با جاوا اسکریپت نوشته شده است و در یک فریم مخفی چیده شده است. این موتور مسئول بین رندر کردن واسطی که کاربر می بیند و ارتباط بر قرار کردن با سرور از طرف کاربر می باشد. این موتور به کاربر اجازه می دهد که مستقل از ارتباط برقرار کردن با سرور ، با برنامه تعامل داشته باشد. همچنین کاربر هرگز در یک صفحه جدید سفید مرورگر با یک آیکون ساعت شنی شروع نمی کند و در حال صبر نخواهد بود تا سرور کارهایش را انجام دهد.
در شکل زیر دو مدل را از لحاظ زمان مورد بررسی قرار داده ایم و در واقع نحوه بهبود سیستم کلاسیک وب با استفاده از مدل آژاکس را نمایش داده ایم.

 

هر عمل معمول کاربر یک درخواست HTTP تولید می کند و به صورت یک قالب جاوا اسکریپت بسوی موتور آژاکس فرستاده می شود. هر پاسخی به کاربر که احتیاج به گرفتن جواب از سرور ندارد مانند اعتبارسنجی ساده داده ها ، ویرایش داده ها در حافظه و غیره ، موتور آژاکس این عمل کاربر را در درون خود اداره کرده و به کاربر پاسخ می دهد.حال اگر موتور نیاز به چیزهایی از سرور برای پاسخ دادن به کاربر داشته باشد همانند دادن اطلاعات برای پردازش ، بارگیری کدهای اضافی واسط یا بازیابی اطلاعات جدید روند کار کمی دچار تغییر می شود ، به این صورت که موتور اینگونه نیازها را تبدیل به درخواست های غیر همزمانی می نماید که معمولا با استفاده ازXML و بدون متوقف کردن تعامل کاربر با برنامه می باشد.
واژه Ajax با تلفظ یا سرنام عبارت Asynchronous JavaScript and XML و به معنی XML است. ماهیت صفحات وب و پروتکل HTTP به گونه‌ای است که به طور معمول وقتی درحال وب‌گردی هستیم، به ازای هر کنش و واکنش میان ما و سایتی که در حال کار با آن هستیم، کل یک صفحه وب از نو بارگذاری و تازه‌سازی (refresh) می‌شود.
ای‌جکس فناوری جدیدی است که تغییر محسوسی را در این سناریو به وجود می‌آورد؛ به این ترتیب که به جای بارگذاری مجدد کل صفحه، فقط قسمتی تغییر می‌کند که قرار است اطلاعات جدید را به نمایش درآورد و کلیه عملیات ارسال اطلاعات و دریافت نتایج در پشت صحنه انجام می‌شود. در نتیجه هیچ‌گاه صفحه سفید و خالی وب در فواصل کنش و واکنش‌های هنگام کار با مرورگر دیده نمی‌شود و احساسی مشابه تجربه کار با یک نرم‌افزار دسکتاپ به کاربر دست می‌دهد.
جادوی ای‌جاکس چیزی نیست جز یک فکر بکر و آن هم ترکیب کردن جاوا اسکریپت و XML در قالب یک موجود ‌نرم‌افزاری جدید.
اصطلاح Ajax را اولین بار کارشناسی از شرکت Adaptive Path به نام جسی جیمزگرت در مقاله‌ای با عنوان مطرح کرد و خیلی سریع مورد استقبال گسترده برنامه نویسان وب در سراسر جهان قرارگرفت. اعتقاد عمومی این است که تاریخچه به‌کارگیری تکنیک مذکور به پیدایش نرم‌افزار Outlook WebAccess و استفاده از فرمان XMLHttpRequest که مایکروسافت ابداع کرده و در نرم‌افزار اینترنت اکسپلور به‌کار رفته است، برمی‌گردد. اما امروزه اغلب مرورگرهای مهم و شناخته‌شده (از جمله فایرفاکس) از آن پشتیبانی می‌کنند و دیگر یک فناوری محدود به اینترنت اکسپلورر نیست.
● چرا Ajax این قدر اهمیت‌دارد؟
منابع اطلاعاتی سودمند درباره Ajax
▪ راهنمای Ajax برای مبتدیان
▪ چرا اکنون Ajax مهم است؟
▪ Ajax به نرم‌افزار‌های تحت وب حال و هوای تازه‌ای می‌دهد
▪ راهنمای موزیلا برای شروع کار با Ajax
▪ چگونه یک Ajax در ASP.NET بسازیم؟
▪ روش استفاده از Ajax
▪ پورتال ای‌جکس کاران
▪ معرفی انواع نرم‌افزارها و پیاده‌سازی‌های Ajax
▪ تشکل آنلاین ای‌جکسی‌ها
▪ اصول و قواعد طراحی با Ajax
▪ پادکست یکی از علاقه‌مندان Ajax
▪ مجله Ajax
فناوری ای‌جکس جدید است و شگفت‌انگیز به‌نظر می‌رسد. ولی در حقیقت کل این شعبده بر اساس فناوری‌هایی بنا شده است که هم‌اکنون موجودند: جاوا اسکریپت و XML. هر دوی این فناوری‌ها تا حد زیادی باز هستند و منحصر به شرکت خاصی نیستند. به همین دلیل این روزها تمام محافل دنیای برنامه نویسی مملو از مقالات و تحلیل‌هایی درباره Ajax است. به عنوان نمونه می‌توانید صفحه نخست سایت موسوم به را بازکنید.
بیشتر این صفحه (در زمان نگارش این یادداشت) به مقالات و مطالب متنوعی درباره Ajax اختصاص یافته است. مجلات برنامه‌نویسی نیز مقالات متعددی در این زمینه منتشر کرده‌اند و سایت‌های معروفی مانند
O Reilly و xml.com نیز در این باره مطلب دارند.
بنابراین ظرفیت بالایی برای تبدیل ای‌جکس به یک استاندارد جهانی وجود دارد. از این رو قرار است در تاریخ سیزدهم مارس سمینار مهمی در زمینه Ajax برگزار شود. اگر همین الان به سایت ajaxseminar.com مراجعه کنید، متوجه می‌شوید که علاوه بر طراح این تکنیک، چندین برنامه‌نویس شاخص از شرکت‌های بزرگی همچون یاهو در آن شرکت خواهند داشت.
این فناوری از یک جنبه دیگر نیز اهمیت دارد. به‌دلیل عدم نیاز به بارگذاری مجدد کل یک صفحه وب، مقدار داده‌هایی که لازم است برای تکمیل یک Interaction میان کاربر و سایت مبادله شود، به شدت کاهش می‌یابد و این به معنی افزایش محسوس سرعت نرم‌افزارهای تحت وب، سهولت به‌کارگیری اینترفیس‌های مبتنی بر ای‌جکس و کاربرپسندترشدن آن‌ها می‌شود. به همین دلیل این روزها اکثر پورتال‌های بزرگ (مانند یاهو) مشغول طراحی اینترفیس‌های مبتنی بر Ajax هستند.
با این همه مزایای ای‌جکس‌ به همین‌ موارد ختم نمی‌شود. تصور کنید وقتی در طول شبانه روز میلیاردها بار فرآیند بارگذاری مجدد صفحات وب تعاملی در شبکه اینترنت تکرار می‌شود، استفاده از ای‌جکس چگونه موجب آزاد شدن پهنای‌باند اینترنت و در نتیجه میلیاردها دلار صرفه‌جویی اقتصادی در این زمینه می‌شود و این به نوبه خود انقلابی در عرصه وب و فضای سایبر به شمار می‌رود. این تحول در شرایطی اتفاق می‌افتد که همزمان فناوری‌های اینترنت پرسرعت همچون ADSL به شدت در حال رشد هستند.
حال تصور کنید اگر فناوری ای‌جکس در مقیاس گسترده‌ای مورد استفاده نرم‌افزارهای تحت وب قرارگیرد. آنگاه افزایش سرعت کار با اینترنت چند برابر خواهد شد. چنین تحولی می‌تواند اینترنت را به کامپیوتر دوم کاربران تبدیل کند. به گونه‌ای که برای آن‌ها اجرای یک نرم‌افزار از روی وب تفاوت محسوسی با اجرای آن از روی کامپیوتر دسکتاپ نداشته باشد. در این صورت ممکن است واقعا بخش مهمی از توان پردازشی نرم‌افزارها، چه از نوع دسکتاپ و چه از نوع تحت وب به سیستم‌های موسوم به Web Service واگذار شود. از این رو کسانی که مبتکر و مشوق ایده وب سرویس بوده‌اند، این روزها انگیزه تازه‌ای برای سرعت بخشیدن به این فناوری پیدا کرده‌اند و تلاش می‌کنند دو فناوری ای‌جکس و وب سرویس‌ را به‌یکدیگر پیوند دهند و راهکارهای تازه‌ای بیافرینند.
● کدام سایت‌ها از ای‌جکس استفاده کرده‌اند؟
دنیای برنامه‌نویسی وب هنوز درگیر هیجانات مربوط به آشنایی با این پدیده است و در حال بررسی مشکلات تکنیکی و هضم و جذب آن در بافت برنامه‌های تحت وب می‌باشد. به همین دلیل میزان استفاده عملی از آن چندان گسترده نیست. اما چون کارایی ای‌جکس دیگر برای همه ثابت شده است، حرکت‌های بزرگی در سراسر اینترنت به سمت استفاده از این فناوری در جریان است. از جمله اینترفیس نسخه دوم Yahoo Mail که به نسخه بتا معروف است و فعلا در دسترس کاربران سرویس غیر رایگان یاهو قراردارد، از همین فناوری استفاده می‌کند که به زودی اینترفیس جدید در دسترس عموم قرار می‌گیرد. سرویس Gmail و Google Map نیز از این فناوری استفاده می‌کنند.
اینگونه پروژه ها ثابت می کند که AJAX فقط حرف فنی نیست و نمونه های عملی در جهان واقعی کاربردی دارد.


نوع مطلب : کامپیوتر 

داغ کن - کلوب دات کام
نظرات() 
How do you grow?
18 شهریور 96 18:31
What's Taking place i'm new to this, I stumbled upon this I've discovered It positively useful and it has helped me out loads.
I hope to give a contribution & help different customers like its helped me.
Great job.
http://paulaeron.hatenablog.com/
31 تیر 96 13:28
Hurrah, that's what I was searching for, what a
information! existing here at this blog, thanks admin of this web page.
jolineneeb.hatenablog.com
31 تیر 96 10:09
Hey There. I found your blog using msn. This is an extremely well written article.
I'll be sure to bookmark it and come back to read more of your useful info.
Thanks for the post. I will definitely return.
https://sherleysecore.wordpress.com
29 تیر 96 08:17
Thanks for some other informative site. Where else may just I am getting that type of information written in such a perfect manner?
I've a project that I'm simply now working on, and I've been on the look out for
such information.
byron1trujillo5.soup.io
29 تیر 96 07:33
Simply want to say your article is as astonishing.
The clearness to your submit is just great and that i can think you are a professional on this
subject. Well together with your permission allow me to seize your RSS feed to keep up to date with
imminent post. Thank you one million and please continue the gratifying work.
reenacrofton.hatenablog.com
29 تیر 96 06:42
My spouse and I absolutely love your blog and find almost all of your
post's to be just what I'm looking for. Does one offer
guest writers to write content in your case? I wouldn't mind composing a post or elaborating on a lot of the subjects you write
regarding here. Again, awesome web log!
dungglock.hatenablog.com
29 تیر 96 04:46
Hi there, just became aware of your blog through
Google, and found that it's really informative.
I am gonna watch out for brussels. I will be grateful if you continue this in future.
Lots of people will be benefited from your writing.

Cheers!
http://sharleensu.jimdo.com
28 تیر 96 20:25
Hello there, just became alert to your blog through
Google, and found that it's really informative.
I'm going to watch out for brussels. I'll be grateful if you
continue this in future. Lots of people will be benefited
from your writing. Cheers!
https://snobbishfixatio49.tumblr.com/
28 تیر 96 13:14
It's amazing to pay a visit this website and reading the views
of all colleagues on the topic of this article, while I am also keen of
getting knowledge.
http://tracy7dillard4.soup.io
26 تیر 96 03:04
My brother recommended I might like this web site.
He was entirely right. This post truly made my day. You can not imagine just how much time I had spent for
this info! Thanks!
http://jaggedpersonnel1.jimdo.com
15 تیر 96 05:09
Thanks for one's marvelous posting! I quite enjoyed reading it, you will be a great author.
I will be sure to bookmark your blog and will come back later on. I want to encourage you
to ultimately continue your great work, have a nice afternoon!
vicentachatcho.hatenablog.com
30 اردیبهشت 96 21:34
It's going to be ending of mine day, however before ending
I am reading this wonderful article to increase my knowledge.
Willy
25 اردیبهشت 96 04:15
Do you have a spam problem on this blog; I also am a blogger, and I was wondering your situation; we have created some nice practices and we are looking
to trade solutions with other folks, why not shoot me an e-mail if interested.
manicure
31 فروردین 96 14:09
Hmm is anyone else having problems with the images on this blog loading?
I'm trying to determine if its a problem on my end or if it's the blog.
Any feed-back would be greatly appreciated.
 
لبخندناراحتچشمک
نیشخندبغلسوال
قلبخجالتزبان
ماچتعجبعصبانی
عینکشیطانگریه
خندهقهقههخداحافظ
سبزقهرهورا
دستگلتفکر