|
|
|
|
|
در این مقاله ای که در وبلاگ گذاشتم در مورد دنیای جدیدی که آژاکس در برنامه های کاربردی وب بوجود آورده است صحبت شده است. این مقاله نوشته آقای Peter Wayner می باشد که از سایت InfoWorld انتخاب کردم و با کمی اشکال که در ذات آدمی است برای شما ترجمه کردم و امیدوارم که از این مقاله استفاده کنید تا بیشتر به عنصر جدید مطرح شده در زمینه برنامه های کاربردی وب پی ببرید. صرف نظر از اینکه شما درباره JavaScript ، DHTML و Browser میدانید ، آژاکس یک بازی با توپ کاملا جدید است. یک سال قبل، Thomas Lackner زیاد جویای جاوااسکریپت نمی شد. وقتی طرح خلاصه معماری یک برنامه کاربردی وب را آماده کرد. او می دانست که می تواند زبان مرورگر را برای نصب یک نویسنده کوکی و بارگیری عکس ها شمارش نماید. اما او چرخشی را به سمت سرور برای حرکتی عظیم برداشت. اما وقتی گوگل فعل و انفعال عالی را برای وب سایت خود شروع کرد همانند Gmail و Google Suggest، میزان آن از چشمان Lackner افت کرد و او فرصت یافت. او گفت : وسط سال 2004 تمام آن جرقه ها زده شد. من تلاشی را برای افزودن مولفه های آژاکس به هر برنامه کاربردی وب، که کار کرده بودم شروع کردم. آژاکس اخیراً اختصاری از یک دیدگاه تازه در مرورگرهای قدرتمند شده است: جاوا اسکریپت و اکس ام ال غیرهمزمان قبل ازآژاکس صفحات وب لینک ها، فرم ها و دکمه هایی را نمایش می دادند. وقتی کاربر بر روی یک دکمه یا لینکی کلیک می کرد، مرورگر پیامی رو به یک سرور دور دست ارسال می نمود و می پرسید که سری بعد چه چیزی را نمایش دهد. جاوا اسکریپت تمایل داشت که برای چیزی بیش از کنترل ورودی ها استفاده شود.صفحات وب همانند صفحات یک کتاب ایستا بودند. مرورگرهای پست آژاکس (Post-AJAX browser) در پشت صفحات بارگیری شده رگه های (threads) در حال اجرا را پردازش می کنند. اگر یک کاربر بر روی یکی از لینکها یا دکمه ها کلیک نماید، مرورگر می تواند با استفاده از جاوا اسکریپت محتوای صفحه را بروز نماید. برای نمونه، جی میل گوگل، قسمت های یک ایمیل را مخفی یا نمایش می دهد بدون اینکه برای رسیدن پاسخ از سمت سرور صبر نماید، حذف تاخیری شبکه. اگر اطلاعات باید به سرور ارسال شود، با استفاده از یک پردازش درپشت، این اطلاعات را ارسال می نماید. Berndan Eich، سازنده جاوا اسکریپت در نت اسکپ می گوید: الان جهان در حال کشف چیزهایی است که او در سال 1995 تصور می کرد. او می گوید: ما (مارک اندریسن و من) همیشه بر آن بودیم جاوا اسـکریپت توانـایی برنـامـه مشـتــری-میـانی (Client-centeric) راخواهد داشت که نیازی به بارگذاری مجدد صفحه از سرور را ندارد. یک نوع جدید برنامه های کاربردی جسی جیمز گررت کسی بود که در مقاله منتشر شده خود در فوریه سال گذشته مخفف AJAX رو اختراع کرد، می گوید که واکنش به این اسم شگفت آور بوده است. وقتی که شما مزایای رسیدن به آژاکس را کشف می نمایید شور و هیجان آن، غیرقابل درک است. · عمده ترین ساده کننده توزیع نرم افزار است. · مرورگرها صفحات AJAX را به صورت خودکار بارگیری می نمایند. · مشتری ها اغلب برای نصب نرم افزار سفارشی بی میل هستند اما بیشتر مردم را می توان برای دیدن یک سایت متقاعد نمود. علاوه بر اینها، آژاکس چند تا مزایای دیگر نیز دارد. · اجرای جاوا اسکریپت در سمت مشتری باعث کاهش مصرف پهنای باند و پردازش تقاضا در سرور می شود. · کدهای خوب طراحی شده که بدرستی غیرهمزمان باشند نیز برای پاسخ به تقاضا و پرس جو بیش از یک بار به سرور میروند و حتی بیشتر که بوسیله پخش خارجی پیک تقاضا خواهد بود. · افزایش امنیت به وسیله رمزنگاری داده ها در سمت مشتری قبل از اینکه ارسال شوند. برنامه کاربردی Basecamp project-management از 37signals مثال بسیار خوبی برای یک توسعه برنامه کاربردی وب با استفاده از نمونه جدید است. منوهای زیادی برای باز کردن یک پنجره بدون اینکه یک رفت و برگشت به سرور باشد، اضافه می شود. اما وقتی آیتم جدید ذخیره می شود، مرورگر هنوز باید صبر نماید تا مطمئن شود که آیتم جدید به طور کامل ذخیره شده است. بروز رسانی کدهای جاوااسکریپت سرور در پس زمینه تا زمانی که نوشته " درحال انتقال... فقط چند لحظه" در حال نمایش است، ادامه می یابد. هنوز خیلی از فعل وانفعالات با سرور باقی مانده است، اما سرعت کدهای جاوا اسکریپت بوسیله مدیریت چندین کلیک کاربر بالاست. David Heinemeier Hansson یک برنامه نویس در 37signalsاست ومی گوید: که او بر روی موضوع حذف زمان تاخیر وقتی که کاربر فرم را تائید می کند، تمرکز کرده است. " اگر شما در وبلگتان یک توضیحات داشته باشید، در پس زمینه سمت سرور بروز رسانی می شود. هر وقت که شما نیاز به اضافه کردن یا تغییر محتوای آن را دارید دیگر به بارگذاری مجدد صفحه نیازی نیست و می توان این کار را انجام داد. برخی همهمه ها ساخته شده درباره آژاکس توسط طراحان وب بوده است. انعطاف پذیری آژاکس نقطه قوتی برای طراحان وب است به دلیل اینکه جاوا اسکریپت توان کنترل ظاهر هر عکس یا نوع را در یک صفحه دارد. فونت ها توان کوچک و بزرگ شدن را دارند. خطوط جدول توان افزایش یا کاهش را دارند. رنگها توان تغییر را دارند. که این ابزار بسیار خوبی برای طراحان وب است. سماجت مشکلات مرورگرها شور و شوق برای این فناوری های جدید به خاطر ذات آدمی، معمولی است . چند تا ابزار خوب برای توسعه آژاکس موجود است ، platform که می تواند ناپایدارباشد و از استانداردی که متناقض است تبعیت کند. دو تا از بزرگترین دلایل شکایت درباره اختلاف بین مرورگرها و تطابق آنها این است که آنها بهترین راه را برای اضافه کردن چند امکان فعل و انفعال نمی فهمند. اضافه تر، این مقدورات جدید می توانند کاربران را گیج نمایند که انتظار ندارند این امکانات جدید – در بعضی موارد – شکاف های امنیتی جدیدی باز نمایند. بسیاری از برنامه های کاربردی آژاکس به امکاناتی نیاز دارند که فقط در ورژن های جدید سیستم های جاوا اسکریپت با مرورگرهای جدید همانند Firefox یا IE 5.5 در دسترس هستند. برای مثال، شی XMLHttpRequest ، XML را از سرویس دهنده وب مستقیما تجزیه می کند، یک امکانی است که کار بامنابع XML را برای برنامه نویسان راحت تر خواهد کرد. قبل از این که این امکان در IE5.0 آغاز شود، توسعه دهنده ها می بایست اطلاعات را از سرور دوردست بارگذاری می کردند اما به یک فریم جداگانه نیاز داشتند. بعضی از جدیدترین مرورگرها پلت فرم (Platform) پایا ای را برای استفاده از XSLT (XSL Transformation) ارائه نمودند، اما جزئیات آن به نظر آبکی می آمد. اینها بزرگترین تفاوت روش اداره کردن فضای نام (NameSpace) در مرورگرهای IE 5.0, 5.5 و 6.0 بود. موزیلا 1.8 الان چند تا از همین امکانات رو به اشتراک گذاشته که در نخستین ورژن این کار را انجام نداده بود. برنامه نویس ها برای رفع این نقص مجبورند که بارکننده های سفارشی بسازند تا کدها را با ورژن مرورگر مطابق نماید. راب برون یکی از اولین توسعه دهنده های آژاکس و خالق پلاگین Aardvark در Firefox خوش بین است و میگوید : « خوشبختانه اغلب مرورگرهای متفاوت می توانند به طور مناسب و به آسانی در چندین توابع سودمند کپسوله شوند و خوراک اصلی برنامه کاربردی آژاکس شما از قیود زشت آزاد شود ». اما این، از شکل اندازی ها می تواند دردناک شود، و اغلب مرورگرهای ابتدایی بسادگی تبعیت می کنند. Fried میگوید: « ما در حال کار بر روی یک پروژه به نام کوله پشتی (Backpack) هستیم که در هنگام ورود، به اولین برنامه پیشرفته آژاکس به غیر از Gmail تبدیل می شود. ما تصمیم گرفتیم که به IE 5.0 فقط بگوییم نه. یک تصمیم آگاهانه بود که ما گرفتیم و به زمان مربوط است ». همین، بمبارزه طلبیدن چندین نوع طراحی است. اگر یک برنامه کاربردی وب فقط به صورت داخلی استفاده شود، یک گروه معمار میتواند فرض معقولانه ای کند که تمام مرورگرهای شرکت دارای یک خصوصیات مشترک هستند. در یک چنین حالت زیربنایی، برنامه نویسی راحت تر است. اما یک شرکت که برنامه های کاربردی وب برای مشتری توزیع می کند هرگز نمی تواند چنین پنداشتی داشته باشد. اغلب مشتری های آنها ورژن قدیمی مرورگرها را استفاده می کنند. دردسر کد معامله با مرورگرهای نامعلوم اولین چالش است. ابزار توسعه برای ساختن جاوا اسکریپت هنوز پیش از چند مورد نمی باشد و نسبت به آنها حس دشوار بودن را دارید. خصایصی که برنامه نویسان سایر زبانها مسلم فرض می کنند، فقط در دنیای جاوا اسکریپت ظاهر می شود. به عنوان مثال اشکال زدایی همچون Venkman موزیلا در بسیاری از موارد توسط کد نویس هایی که عادت به بارگذاری مجدد صفحات برای جستجوی خطا دارند استفاده نمی شود. ED Felten یک پروفسور کامپیوتر در دانشگاه علاوه بر این کدهای جاوا اسکریپت همانند روشهای برنامه نویسی C و JAVA گردآوری نشده است و کاربر نهایی می تواند کد را ببیند و یا حتی قبل از اجرا، آنرا ویرایش نماید. برای مثال، یک حمله کننده می تواند در کد به دنبال رشته هایی بگردد که شامل دستورات SQL می باشد و آنها را با پرس وجوهایی جانشین نماید که اطلاعات مختلفی را از سرور بازیابی نماید. Felten می گوید: « هروقت شما رشته ای را به جایی ارسال می نمایید، درباره آن خیالی دارید ». ظهور خطاهای جدیدی همچون اینها نیاز به تفکر مجدد درباره خصایص جدید، توسط طراحان وب دارد.کاربران مرورگرها به درک روشهای قدیمی رسیده اند. آنها آگاه شده اند، برای مثال، دوبار کلیک کردن بر روی یک دکمه نمی تواند بر روی کارت اعتباری آنها شارژ دوباره داشته باشد. برنامه های کاربردی آژاکس بسیاری از فرضیات آنان را می شکند. |
||
|
+
نوشته شده در چهارشنبه چهاردهم دی 1384ساعت 1:11 توسط رضا نوجوان
|
|
||