تالار گفتمان مانشت
معرفی فناوری Ajax - نسخه‌ی قابل چاپ

معرفی فناوری Ajax - p.parsaee - 30 مرداد ۱۳۹۱ ۰۱:۴۸ ق.ظ

ajax یا ای جکس، که به اشتباه گاها به صورت آجاکس یا آژاکس تلفظ می شود، بک فناوری برای استفاده در صفحات وب است. به وسیله این فناوری می توان صفحات وب را سریعتر بارگزاری کرد. به همین خاطر است که در بسیاری از صفحات وب حرفه ای از همین فناوری استفاده شده است زیرا که یکی از مزایای صفحات وب حرفه ای در برابر بقیه سرعت بارگزاری بهتر است.
قبلا در جایی می خواندم که قبل از استفاده از ای جکس، سرعت بارگزاری برنامه های تحت ویندوز مثل چماقی بر سر برنامه های تحت وب بودند.Angel
ای جکس مخفف Assymetric Java Script and Xml است. استفاده از جاوا اسکریپت و xml به صورت نامتقارن.

بگزارید برای ملموس تر شدن ای جکس برایتان مثال بزنم.

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

یا وقتی به قسمت اعضاء در انجمن مانشت مراجعه می کنید و می خواهید کاربری را جستجو کنید، در کادر متن مربوط به نام کاربری، یک نام کاربری را می نویسید. مثلا می نویسید p.pa بعد از مدت کمی تمامی کاربرانی را که نام کاربری آنها با p.pa شروع می شود در یک لیست پایین افتادنی نشان داده می شوند.

مثالی را از سایتهای دیگر می زنم: موقع ثبت نام در بعضی از سایتها، هنگامی که نام کاربری خود را وارد می کنید و به فیلد بعدی می روید یک تصویر متحرک loading ظاهر می شود و بعد از مدتی محو می شود. در این حین بررسی می شود که آیا این نام کاربری قبلا به ثبت رسیده است یا نه. اگر به ثبت رسیده باشد بعد از پایان بررسی، مثلا آن کادر متن به رنگ قرمز در می آید و اگر به ثبت نرسیده باشد این کادر متن به رنگ سبز در می آید.

روش انجام این کارها چیست؟
بگزارید مثال آخری را که زدم برایتان تشریح کنم. بازدیدکننده ای که می خواهد ثبت نام کند موقع نوشتن اسم کاربری خود در کادر متن مربوطه، و مراجعه به فیلد بعدی مقدار موجود در این کادر متن بوسیله جاوا اسکریپت به سرور فرستاده می شود. در سرور بوسیله یک زبان برنامه نویسی سمت سرور در جدول کاربران جستجو می شود اگر چنین نام کاربری یافت شد مقداری مثلا مقدار ۱ و اگر یافت نشد مقدار دیگری مثلا مقدار ۰ به آن تابع جاوا اسکریپت پس فرستاده می شود. در تابع جاوا اسکریپت بسته به نوع مقداری که دریافت شده (۰ یا ۱ یا مقدار خطا) کادر متن نام کاربری به رنگ سبز یا قرمز در می آید.

معرفی فناوری Ajax - zeinab - 30 مرداد ۱۳۹۱ ۱۰:۴۰ ق.ظ

خیلی خوبه! به بعضی سوالای من پاسخ دادین! لطفا اگر نکته دیگه ای هم هست بگین.
تشکر.

و یه سوال در مورد مثال هایی که زدین! مثالی که در مورد ثبت نام زدین رو هم میشه با جاوا نوشت هم ای جکس؟؟ فرقی نداره؟؟

معرفی فناوری Ajax - p.parsaee - 30 مرداد ۱۳۹۱ ۰۳:۲۶ ب.ظ

خواهش می کنم. سعی می کنم نکات دیگری را هم بیان کنم.
اما در پاسخ به این سوالتون
(۳۰ مرداد ۱۳۹۱ ۱۰:۴۰ ق.ظ)zeinab نوشته شده توسط:  و یه سوال در مورد مثال هایی که زدین! مثالی که در مورد ثبت نام زدین رو هم میشه با جاوا نوشت هم ای جکس؟؟ فرقی نداره؟؟
ببینید ای حکس زبان نیست. برای به کار بردن ای جکس در صفحات وب از زبان جاوا اسکریپت به همراه xml استفاه می شه. که شما زیاد با اون xml کار ندارید. حالا هر چی فریمورک یا dll یا کتابخونه جاوا اسکریپتی هم باشن که کار رو راحت تر کرده باشن در نهایت از زبان جاوا اسکریپت استفاده می کنن.

RE: معرفی فناوری Ajax - zeinab - 31 مرداد ۱۳۹۱ ۱۰:۱۰ ق.ظ

(۳۰ مرداد ۱۳۹۱ ۰۳:۲۶ ب.ظ)p.parsaee نوشته شده توسط:  خواهش می کنم. سعی می کنم نکات دیگری را هم بیان کنم.
اما در پاسخ به این سوالتون
(۳۰ مرداد ۱۳۹۱ ۱۰:۴۰ ق.ظ)zeinab نوشته شده توسط:  و یه سوال در مورد مثال هایی که زدین! مثالی که در مورد ثبت نام زدین رو هم میشه با جاوا نوشت هم ای جکس؟؟ فرقی نداره؟؟
ببینید ای حکس زبان نیست. برای به کار بردن ای جکس در صفحات وب از زبان جاوا اسکریپت به همراه xml استفاه می شه. که شما زیاد با اون xml کار ندارید. حالا هر چی فریمورک یا dll یا کتابخونه جاوا اسکریپتی هم باشن که کار رو راحت تر کرده باشن در نهایت از زبان جاوا اسکریپت استفاده می کنن.

پس html و php چی پس؟!! استفاده نمیشه؟!!!
از هر کدوم چه موقع استفاده میشه؟!!
تشکر

معرفی فناوری Ajax - p.parsaee - 01 شهریور ۱۳۹۱ ۰۱:۲۸ ب.ظ

در وب به طور کلی دو نوع تکلنولوژی و کد داریم:
الف) سمت سرور (مثل php، و asp.net)
ب) سمت کاربر (مثل جاوا اسکریپت، html، و css)

اون قسمتی که مربوط به سمت سرور میشه ، روی سرور اجرا میشه به کد سمت کاربر تبدیل میشه و برای کاربر فرستاده میشه.

RE: معرفی فناوری Ajax - equilibrium - 01 شهریور ۱۳۹۱ ۰۳:۳۸ ب.ظ

(۰۱ شهریور ۱۳۹۱ ۰۱:۲۸ ب.ظ)p.parsaee نوشته شده توسط:  در وب به طور کلی دو نوع تکلنولوژی و کد داریم:
الف) سمت سرور (مثل php، و asp.net)
ب) سمت کاربر (مثل جاوا اسکریپت، html، و css)
اون قسمتی که مربوط به سمت سرور میشه ، روی سرور اجرا میشه به کد سمت کاربر تبدیل میشه و برای کاربر فرستاده میشه.

البته یه دسته بندی دیگه هم هست که بر اساس اون صفحات وب رو به سه دسته تقسیم میکنن:
صفحات ایستا: محتوی این صفحه ها معمولا ثابتن؛ مثل صفحه homepage اکثر استادها که اگه صدبار هم بهش سر بزنید چیزی تغییر نکرده؛ برای ایجاد این صفحه ها زبان html کافیه و css هم میتونه قشنگترش کنه؛
صفحات پویا: مثل همین انجمن که هربار بهش سر میزنید مطلب های جدیدی میبینید که وارد دیتابیس مانشت شده؛ برای نوشتن اینجور صفحه ها به چیزی بیشتر از html نیازه چون ارتباط به دیتا بیس رو نیاز داره. مثلا میشه از asp.net یا php در کنار دستورات html استفاده کرد؛
صفحات اکتیو: اون صفحه هایی که در مطلب اول مثال زدید جز این دسته اند. یعنی صفحاتی اند حاوی "کدی" که سمت کلاینت پردازش میشن؛ و معمولا هم از جاوا اسکریپت برای نوشتنشون استفاده میشه؛


با توجه به توضیحات شما، جایگاه Ajax هم در طراحی همین صفحات دسته سوم و با استفاده از جاوا اسکریپت هست، درسته؟
(اگه فرصت داشتید لطفا یه نمونه کد هم بزارید برای نحوه استفاده از Ajax در یکی از همون مثالهایی که زدید)

RE: معرفی فناوری Ajax - p.parsaee - 01 شهریور ۱۳۹۱ ۱۱:۰۸ ب.ظ

نه درست نیست. چون در اکثر مواقع از Ajax جاهایی استفاده میشه که صفحه قابلیت پویایی رو داشته باشه. پس صفحاتی که اکتیو هستند ایستا هم هستند چون قابلیت رد و بدل کردن داده ها رو از یک منبع داده ندارن. حالا درسته که میشه در صفحات ایستا از جاوا اسکریپت استفاده کرد یا میشه استفاده نکرد. ولی خوب صفحاتی که ایستا هستند کمتر مشاهده میشه که از Ajax استفاده کنن ولی میتونن استفاده کنن.
اون مثالهایی که بالا زدم همه مثالهایی از کاربرد Ajax در صفحات پویا بودند و نمیشه اونها رو در دسته صفحات اکتیو قرار داد زیرا که بعضی از کدهای موجود در این صفحات با سرور تعامل دارند. پس پردازشها هم در سرور و هم در کلاینت انجام میشن
کد سمت کلاینت مثال سوم شامل این کد jquery هست: (jquery یک کتابخونه جاوا اسکریپتی هست)

کد:
$.post(
    "check_uname_availability",
    { user_name: ($('#txt_user_name').val()) },
    function (result) {
        if (result == '1') { alert('already taken') }
        else if (result == '0') { alert('ok, is available') }
        else { alert('error') }
});

توضیح: به وسیله متد post نام کاربری که فرد در کادر متن txt_user_name وارد کرده رو به سرور فرستادیم و بنا به جوابی که سرور به ما میده پیغامی رو نشون می دیم.

معرفی فناوری Ajax - Studious - 01 آذر ۱۳۹۱ ۰۷:۳۵ ب.ظ

ممنون جالب بود