آژآکس ، خط مشی جدیدی برای برنامه های وب (ترجمه)
جسی جیمز گرت
18 فوریه 2005
ترجمه کسرا یوسفی
اگر یک موضوع جذاب در طراحی تعامل وجود داشته باشد آن خلق برنامه های وب است. قبل از هرچیزی به آخرین باری فکر کنید که کسی در مورد طراحی تعامل یک محصول با هیجان صحبت کرد که این محصول روی وب نبود؟ (بسیار خوب ، آی پاد را ندیده می گیریم). {نتیجه می گیریم که} تمامی پروژه های جالب آنلاین هستند.
علیرغم این امر، طراحان تعامل وب نمی توانند جلوی احساس حسادت ملایم خود را درباره برنامه نویسان برنامه های رومیزی بگیرند. برنامه های رومیزی داری قوت و واکنشگری ای هستند که در{برنامه های} وب غیر ممکن می نماید.
آن سادگی ای که موجب تکثیر سریع وب شد همچنین شکافی بین تجربه ای که ما می توانیم به کاربر ارایه کنیم و آنچه که کاربر می تواند از یک برنامه رومیزی بگیرد ایجاد کرد.
این شکاف در حال به هم رسیدن است. به Google Suggest نگاهع کنید. بینید که چگونه لغات پیشنهادی همینطور که شما تایپ می کنید، تغریبا بلادرنگ، نو می شوند. حالا به Google Maps نگاه کنید. زوم کنید، با مکان نمای خود نقشه را بگیرید و کمی جا بجا کنید، دوباره می بینید که تقریبا همه چیز بلادرنگ اتفاق می افتد، بدون هیچ انتظاری برای اینکه صفحه دوباره بار شود.
دو سایتی که در باره آنها صحبت شد دو مثال یک مشی جدید برای برنامه های وب هستند که Adaptive Path آنها را آژآکس می خواند. این نام خلاصه نویسی جاواسکریپت نا همگام + اکس ام ال و نمایانگر تغییری بنیادین در آن چه در وب ممکن است می باشد.
شرح آژآکس
آژآکس یک تکنولوژی نیست. در واقع مجموع ای از تکنولوژی های متعدد است که هر کدام در مسیر جداگانه خود در حال نشو و نما هستند و در جاهای با یکدیگر با قدرت زیاد هم سو می شوند. آژآکس شامل:
نمایش مبتنی بر استاندارد ها با استفاده از XHTML و CSS
نمایش و تعامل فعال با استفاده از DOM
تبادل و پردازش اطلاعات با استفاده از XML و XSLT
رفت و برگشت نا همگام اطلاعات با کمک XMLHttpRequest
جاواسکریپت برای به هم پیوستن همه اینها
مدل سنتی برنامه های وب به این شکل کار می کند: بیشتر فعالیت هایی که کاربر در ارتباط با واسط تصویری انجام می دهد ماشه درخواست هایHTTP را در وب سرور می کشند.سرور مقداری کار پردازش و استخراج اطلاعات ، خرد کردن اعداد ، صحبت کردن با سیستم های متعدد قدیمی انجام می دهد و سپس صفحه HTML را به کاربر بر می گرداند. این مدلی است که از کاربرد اولیه وب به عنوان یک رسانه ابرمتن به اقتباس شده است ولی همانطوری که طرفداران کتاب “عناصر تجربه کاربر”(کتابی از نویسنده همین مقاله.م.) می دانند، آنچه که وب را برای {مدیریت} ابرمتن مفید کرده لزوما آن را برای برنامه های کاربردی مفید نمی کند
این روش از دید فنی بسیار منطقی است ولی تنیجه درخشانی از دید تجربه کاربر ندارد. هنگامی که سرور مشغول انجام دادن وظایف خود است ، کاربر چه می کند؟ بله، صحیح است، صبر می کند. و در هر گامی{ که در مسیر انجام دادن یک} کار برداشته می شود ، کاربر کمی بیشتر صبر می کند.
بدیهی است اگر ما وب را از ابتدا برای برنامه های وب طراحی کرده بودیم اجازه نمیدادیم که کاربران منتظر بمانند. هنگامی که یک واسط بار می شود چرا باید برهم کنش کاربر هربار که برنامه چیزی را در سرور نیاز دارد متوقف کنیم. در واقع اصولا چرا کاربر باید متوجه ارتباط سرور و برنامه شود؟
آژاکس چگونه متفاوت است؟
یک برنامه آژاکس طبیعت شروع – توقف – شروع – توقف – شروع – توقف تعامل در وب را با آوردن کردن یک واسطه بین کاربر و سرور ، یعنی موتور آژاکس رفع می کند. به نظر می رسد اضافه کردن یک لایه به برنامه باید واکنشگری آنرا کاهش دهد ولی در واقیت عکس این اتفاق می افتد.
به جای بار زدن یک صفحه وب در ابتدای نشست ، مرورگر یک موتور آژاکس را – که با جاواسکریپت نوشته شده و در یک فریم پنهان جاسازی شده بار می زند. این موتورهم مسوول راندو کردن واسط تصویری که استفاده کننده می بیند است و هم از طرف استفاده کننده با سرور مراوده می کند. موتور آژاکس این امکان را ایجا د می کند که تعامل کاربر با برنامه به صورت ناهنگام – مستقل از کننده مراوده {برنامه} با سرور انجام پذیرد. بنابر این استفاده کننده هرگز به یک صفحه خالی مرورگر و شمایل ساعت شنی خیره ، در انتظار این که سرور کاری را انجام دهد نمی ماند.
هر حرکت کاربر که به طور سنتی منجر به ایجاد یک درخواست HTTP {در گذشته } می شده تبدیل به یک صدا زدن جاواسکریپت به موتور آژاکس می شود.
هر پاسخی به کار بر که نیازی به ارجاع به سرور را ندارد – مانند یک {فرایند} تصدیق اطلاعات ساده ویرایش اطلاعات در حافظه و حتی مقداری راهبری – را موتور خودش مدیریت می کند. اگر موتور برای پاسخ دادن {به کاربر} نیاز به چیزی در سرور داشته باشد. – مثل ارایه کردن اطلاعات برای پردازش، بار زدن بقیه کد واسط تصویری یا گرفتن اطلاعات جدید- این درخواست ها را به صورت ناهمگام با استفاده از XML و بدون متوقف کردن تعامل کاربر با برنامه {به سرور} می فرستد.
چه کسانی از آژاکس استفاده می کنند؟
گوگل سرمایه گذاری کلانی برای توسعه خط مشی آژاکس کرده است. تمامی محصولات مهمی که گوگل در سال گذشته معرفی کرده است {یعنی} اورکات، جی میل ، آخرین نسخه بتای Google Groups ، Google Suggest وGoogle Maps برنامه های آژاکس هستند. (برای مطالعه عمیق تر این پیاده سازی های آژاکسی، این تحلیل های درخشان Gmail ، Google Suggest و Google Maps را مطالعه کنید). دیگران نیز {از همین مسیر} پیروی می کنند : بسیاری از امکاناتی که مردم در فلیکر دوست دارند بر آژاکس تکیه دارند و موتور جستجوی آمازون {یعنی} a9.com از تکنیک های مشابهی استفاده می کند.
این پروژه ها نشان می دهند که نه تنها آژاکس از نظر فنی استوار است بلکه همچنان برای برنامه های دنیای واقعی نیز کارآمد است. {آژاکس} یکی دیگر از آن تکنولوژی هایی نیست که فقط در آزمایشگاه کار می کنند. همچنین {نشان می دهد} برنامه های آژاکس می توانند در هر اندازه ای ، از یک کاربرد خیلی ساده و انفرادی {مانند} Google Suggest وجود داشته باشند تا سک برنامه بسیار پیچیده و قامض مانند Google Maps .
در {شرکت} Adaptive Path (شرکتی که نگارنده در آن کار می کند.م.) ما کار{تحقیقاتی} خود روی آژاکس را در طی چند ماه گذشته انجام داده ایم و حس می کنیم که تنها کمی از سطح فوقانی {امکانات} غنی واکنشگری و تعامل پذیری که برنامه های آژاکس می توانند ارایه کنند را خراشیده ایم. آژاکس گام تکاملی بزرگی برای برنامه های وب است و اهمیت آن تازه رشد خود را آغاز کرده است. همچنین به دلیل این که برنامه نویسان بی شماری وجود دارند که که از قبل می دانند چگونه باید با این تکنولوژی ها کار کنند، ما انتظار داریم شاهد دنباله روی موسسات بسیاری از مسیری که گوگل - با بدست آوردن برتری رقابتی که آژاکس تامین می کند- در آن پیشتاز است باشیم
چشم انداز
بزرگترین موانع در ایجاد برنامه های آژاکس فنی نیستند. هسته تکنولوژی های آژاکس پخته ، استوار و خوب فهمیده شده است. در عوض موانع برای طراحان این برنامه ها وجود دارد : فراموش کردن آنچه فکر می کنیم درباره محدودیت های وب می دانیم و شروع تخیل یک دامنه بزرگ تر و غنی تر امکانات.{انچه در آینده می آید}بسیار جذاب خواهد بود.
توضیحات مترجم
من تصمیم گرفتم برای آشنایی بیشتر علاقه مندان آژاکس متن مقاله مهم جسی جیمز گرت یعنی ” آژآکس ، خط مشی جدیدی برای برنامه های وب”را به مرور ترجمه کنم. این مقاله اولین سندی است که آقای گرت که مبدع آژاکس است تالیف کرده و می تواند برای کسانی که می خواهند با آژاکس آشنا شوند مفید واقع شود. لطفا اگر نحوه ترجمه به نظرتان غریب و نامانوس آمد ، مطمئن باشید روی هر جمله ای با دقت خاصی کار شده و برای آمدن هر واژه ای دلایل کافی وجود دارد. در هر صورت اگر انتقادات خود را برای من بفرستید من هم برایتان یک جعبه که داخل آن یک جفت دستکش بوکس است خواهم فرستاد. مهمترین هدف من در ترجمه شفافیت متن به حدی است که لحن نویسنده را از آن طرف کاغذ بشنویم.از شوخی گذشته، بی صبرانه منتظر انتقادات هستم.اگر جایی نیاز به اضافه کردن واژه ای بوده که برای فهم خواننده فارسی زبان لازم می دانسته ام آن را در میان {} قرار داده ام. لغاتی که من معادلی برایشان پیشنهاد کرده ام که احتمالا نو است با قلم ضخیم نوشته ام. مانند بار شدن در برابر Load که معمولا بار گذاری ترجمه می شود که به نظرم زیادی “گذاری” اش زیادی است و نو شدن که به جای به روز آوری به کار برده ام.(لابد اگر شب بود صفحه باید به شب آوری شود و وقتی ما روی دکمه ای ده بار در یک ثانیه کلیک می کنیم، اطلاعات مرتبا به روز آوری می شوند در حالی که همه این به روز آوری ها درچند ثانیه متوالی و یک روز اتفاق افتاده است).
اصل مقاله را اینجا می توانید پیدا کنید.
http://www.adaptivepath.com/publications/essays/archives/000385.php
من تصویر و دیاگرام ها را به احترام قانون کپی رایت اینجا نیاورده ام ، چرا که فرصت مکاتبه با شرکت Adaptive Path و گرفتن اجازه را نداشته و نخواهم داشت. لطفا دیاگرام ها را در سایت اصلی مشاهده کنید.
آگوست 5th, 2006 در 11:27 ب.ظ
be nazare man khob bodesh vali mitonest kameltar bashe .man ye moshkeli daram nemidonam mitonin behem komak konin ya na.man daneshjooye IT hastam mikham raje be AJAX konferans bedam vali etelaatam kafi nist.konferansam bayad 30 min tool bekeshe vali baraye por kardane in vaght matlab nadaram.mitoni komakam koni?khili behesh niaz daram. mer30 & babay
آگوست 23rd, 2006 در 8:41 ب.ظ
سلام
با تشکر از ترجمه خوب شما
من دانشجوی ترم آخر مهندسی کامپیوتر هستم.
پروژه من بر اساس ajax است.
من نیاز به یک نمونه کد از صفحات طراحی شده با
asp ver.3 دارم.
امیدوارم که به من کمک کنید.
متشکرم
علی یزدی
yazdi.ali@gmail.com
اکتبر 2nd, 2006 در 10:01 ب.ظ
سلام ،
این حرکتهای علمی بسیار قابل ستایش است.
سئوال بنده :::
چه سایتهائی در ایران مبتنی بر این تکنولوژی (Ajax) میباشد.
نمونه مثال هم میشود در سایتتان برای دانلود قرارا دهید..
استقبال خواهد شد . قطعا ( ممنون)
اکتبر 3rd, 2006 در 12:27 ب.ظ
جناب آقای اهوز،
خواهش می کنم، لطف دارید.
در باره سایت های ایرانی که با آژاکس کار شده باشند من اطلاعات دقیق ندارم، ولی فکر می کنم یک جستجوی کوچک در گوگل بتواند به شما کمک کند.
برای کار روی کد مبتنی بر آژاکس می توانید به این سایت مراجعه نمایید:
http://www.ajaxian.com/
با احترام
کسرا
اکتبر 17th, 2006 در 11:55 ق.ظ
سلام
ممنون
مقاله هاتون خیلی جالب و به درد بخوره
ایشالا ادامه داشته باشه
اکتبر 17th, 2006 در 9:05 ب.ظ
با سلام و تشکر از ترجمه بسیار خوب شما
من دانشجوی ترم آخر کاردانی کامپیوتر در استان بوشهر هستم و پروژه پایانی من در مورد Ajax در Asp.net 2 هستش. من به دنبال هر نوع مطلب،کتاب، Ebook و یا مقاله ای هستم که بتونه به من کمک کنه .من اینجا به کتاب های زبان اصلی هم دسترسی ندارم. لطفا اگه ممکنه به من کم کنید.
Emaile man: yaser_aseman@hotpop.com
با تشکر از شما
یاسر
اکتبر 22nd, 2006 در 10:05 ق.ظ
یاسر عزیز،
من متاسفانه سرم خیلی شلوغ است و نمیتوانم الان برای شما بگردم. ولی پیداکردن چنین موضوعی با یک جستجوی داخل گوگل به سادگی امکانپذیر است.
میتوانید سوالتان را اینجا هم پست کنید:
http://groups-beta.google.com/group/ajax-world?lnk=gschg
یا جسجتویتان را از اینجا شروع کنید:
http://www.ajaxian.com/
اینها راجع به دات نت و آژاکس مقاله دارند
موفق باشید
با احترام
کسرا
نوامبر 7th, 2006 در 6:57 ق.ظ
سلام
خوبه فقط ساختار جمله ها بهم خورده و جای بعضی از فعل ها جابجا شده.
دسامبر 6th, 2006 در 11:26 ب.ظ
hi
this isn’t a really good translation and this problem is obvious
can you translate some professional essay on the adaptivepath.com please
thanks a lot
فوریه 16th, 2007 در 8:47 ق.ظ
واقعا عالی بود .
امید وارم بازهم مطالب جدیدی رو از زبان شما بشنویم.
ژوئن 21st, 2007 در 12:39 ق.ظ
با تشکر از پاسختان جناب کسرا.
دوستانی که اینترنت پر سرعت دارند حتما سری به سایت
http://www.asp.net/learn/videos/default.aspx?tabid=63#ajax
بزنند..
و لذت ببرند.( من که بردم)
ژوئن 27th, 2007 در 8:47 ق.ظ
با سلام
از اینکه زحمت ترجمه اصل مقاله را کشیده بودید ممنونم . نکات قابل توجهی داشت که به درد من می خورد . میخواستم اگه اجازه بدهید برای دوستانی که این صفحه را می خوانند چند مطلب جهت کار کردن با AJAX داشته باشم.
1- به سایت www.ajax.asp.net بروید نرم افزاری در این سایت هست که پس از دانلود کردن و سپس نصب کردن آن به محیط.net شما ابزارهایی جهت کار کردن با آژاکس اضافه می شود (در ToolBox)
2- وقتی این امکان (آنچه دانلود کردید) را نصب کنید هنگام New کردن یک وب سایت در محیط .Net امکان ایجاد سایتی که از آژاکس پشتیبانی کند را نیز خواهید داشت.
موفق باشید.
آگوست 6th, 2007 در 5:43 ب.ظ
[…] برای اطلاعات بیشتر در باره ایجکس اینجا رو کلیک کنید.برای دیدن مقاله “آژاکس، خط مشی جدید برنامه های وب(ترجمه)” اینجا رو کلیک کنید.(امروز زیاد پست ندادم؟) […]
آگوست 23rd, 2007 در 1:23 ق.ظ
سلام مجدد،
این صفحه از امکانات بالقوه علمی خوبی برخوردار است ،
جای سکون نیست دوستان…. قدرت و ارزش همکاری و تحرک بیشتر وجود دارد …
به قول بیا گیتس :::
وقتی شما منابعی را که میتواند تاثیر عمیقی بر زندگی مردم بگذارد در اختیار داشته باشید ، نمیتوانید بگوئید که بسیار خوب ، وقتی 60 ساله شدم به این موضوع خواهم پرداخت
اکتبر 3rd, 2007 در 9:00 ب.ظ
salam.kasi dar morede ravesh haye digeye tasrie daryafte ettelaat az safahate web chizi midoone?!!be joz ajax.mamnoon misham komakam konid addrese man zahra_k9@yahoo.com
ژانویه 11th, 2008 در 9:58 ب.ظ
سلام يه كمي بيشترو بيشتر در مورد آژاكس مطلب بذارين ممنون مي شم ازتون
وبلاگ آموزنده و مفيدي دارين
ژوئن 14th, 2008 در 10:18 ب.ظ
با سلام و خسته نباشید
بسیار مفید و جالب بود
اگه میشه مقالاتی هم درمورد تکنولوژی های jQuery و… هم بگذارید!
از طریق rss دنبال میکنم
موفق تر باشین