1. مهمان گرامی، جهت ارسال پست، دانلود و سایر امکانات ویژه کاربران عضو، ثبت نام کنید.
    بستن اطلاعیه

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

شروع موضوع توسط hector2141 ‏15/7/13 در انجمن مهندسی کامپیوتر

  1. کاربر ارشد

    تاریخ عضویت:
    ‏6/9/12
    ارسال ها:
    14,318
    تشکر شده:
    2,702
    امتیاز دستاورد:
    0
    حرفه:
    daneshjo
    در واقع Ajax سرنام عبارت Asynchronous JavaScript And XML و روشي جديد از استاندارهاي موجود كه با استفاده از آن مي توان برنامه هاي وب را سريعتر ، بهتر و كاربر پسندتر ساخت . Ajax يك زبان مستقل نيست اما بر مبناي JavaScript و HTTP پايه ريزي شده است .
    Ajax به عبارتي يك تكنيك جديد براي هر چه بهتر و سريعتر كردن برنامه هاي محاوره اي - تعاملي - تحت وب هست و براي دريافت يا ارسال داده ها بين مرورگر و وب سرور از جاواسكريپت استفاده مي كند . به اين صورت كه به جاي لود تمام صفحه وب تنها قسمتي از صفحه را كه در آن توسط كاربر تغيير ايجاد شده است ، لود مي كند . به اين ترتيب سرعت لود و بارگذاري صفحات بالا مي رود .

    [​IMG]
    تكنولوژي 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 فعل و انفعال در وب را بااستفاده از مطرح کردن واسطی میان کاربر و سرور به نام موتور آژاکس بر طرف نموده است. بنظر میرسد که مانند اضافه کردن یک لایه به برنامه کاربردی است تا برنامه را کمتر به سمت سرور فرستاده و از آن پاسخ دریافت نمایید. اما برعکس این حالت درست می باشد.
    درابتدای یک جلسه با یک سرور بجای بارشدن صفحه ابتدا مـرورگر موتور آژاکس را بار می نماید که معمولا با جاوا اسکریپت نوشته شده است و در یک فریم مخفی چیده شده است. این موتور مسئول بین رندر کردن واسطی که کاربر می بیند و ارتباط بر قرار کردن با سرور از طرف کاربر می باشد. این موتور به کاربر اجازه می دهد که مستقل از ارتباط برقرار کردن با سرور ، با برنامه تعامل داشته باشد. همچنین کاربر هرگز در یک صفحه جدید سفید مرورگر با یک آیکون ساعت شنی شروع نمی کند و در حال صبر نخواهد بود تا سرور کارهایش را انجام دهد.
    در شکل زیر دو مدل را از لحاظ زمان مورد بررسی قرار داده ایم و در واقع نحوه بهبود سیستم کلاسیک وب با استفاده از مدل آژاکس را نمایش داده ایم.

    [​IMG]
    هر عمل معمول کاربر یک درخواست 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 فقط حرف فنی نیست و نمونه های عملی در جهان واقعی کاربردی دارد.