📞 02166056460

متد ajax

6 / 10
از 10 کاربر
بازگشت به لیست مقالات » | یکشنبه 3 آبان 1405 در ساعت 11 و 37 دقیقه | نظرات کاربران ( 0 )
آموزش jQuery

متد Ajax در jQuery؛ راهنمای ارسال درخواست به سرور

آشنایی با ساختار درخواست Ajax، گزینه‌های مهم و مدیریت پاسخ و خطا

در این راهنما، متد Ajax در jQuery را از پایه بررسی می‌کنیم؛ از شکل کلی نوشتن درخواست تا ارسال داده، دریافت پاسخ و رسیدگی به خطا. برای مطالعه مطالب مرتبط نیز می‌توانید به آموزش JQuery و توضیح متد ajax مراجعه کنید.

۰۱

متد Ajax در jQuery چیست و چه کاربردی دارد؟

متد $.ajax() راهی برای فرستادن درخواست از صفحه وب به سرور و دریافت پاسخ است. این درخواست معمولاً بدون بارگذاری دوباره کل صفحه انجام می‌شود؛ بنابراین می‌توان بخشی از محتوای صفحه را به‌روزرسانی کرد، اطلاعات فرم را فرستاد یا نتیجه یک عملیات را به کاربر نشان داد.

بسیاری از متدهای ساده‌تر jQuery برای ارتباط با سرور، در نهایت از قابلیت‌های اصلی Ajax استفاده می‌کنند. وقتی به کنترل دقیق‌تری بر آدرس مقصد، روش درخواست، داده‌های ارسالی، زمان انتظار یا مدیریت نتیجه نیاز دارید، $.ajax() گزینه‌ای انعطاف‌پذیر است. ساختار پایه آن به این صورت است:

$.ajax({
  name: value,
  name: value
});

هر گزینه به شکل یک جفت نام و مقدار نوشته می‌شود. نام گزینه مشخص می‌کند چه بخشی از درخواست را کنترل می‌کنید و مقدار آن می‌تواند رشته، عدد، مقدار بولی یا تابع باشد. در کد واقعی، معمولاً به جای عبارت‌های عمومی بالا، گزینه‌هایی مانند url و success قرار می‌گیرند.

۵ نکته مهم درباره متد Ajax در jQuery

۰۲

۱. آدرس مقصد را دقیق مشخص کنید

گزینه url آدرسی را تعیین می‌کند که درخواست به آن فرستاده می‌شود. اگر مسیر نسبی باشد، مرورگر آن را بر اساس آدرس صفحه فعلی تفسیر می‌کند؛ پس بهتر است مسیر را با توجه به ساختار پروژه انتخاب کنید. در برنامه‌های بزرگ‌تر، نگهداری آدرس‌ها به شکل روشن و یکدست، بررسی و اصلاح کد را ساده‌تر می‌کند.

برای نمونه، اگر سرور فایلی متنی را برمی‌گرداند، می‌توان مسیر آن را در url قرار داد و پاسخ را در یک عنصر صفحه نمایش داد. اگر آدرس اشتباه باشد یا منبع در دسترس نباشد، درخواست به نتیجه موفق نمی‌رسد؛ بنابراین هنگام آزمایش، آدرس مقصد را در کنار پاسخ سرور بررسی کنید.

۰۳

۲. روش مناسب درخواست را انتخاب کنید

گزینه type یا در نسخه‌های جدیدتر و رایج jQuery گزینه method، روش HTTP را مشخص می‌کند. برای دریافت اطلاعات معمولاً از GET استفاده می‌شود و برای فرستادن یا تغییر اطلاعات، اغلب POST انتخاب مناسبی است. انتخاب نهایی باید با قرارداد API یا کدی که در سمت سرور نوشته‌اید هماهنگ باشد.

برای مثال، جست‌وجوی یک محصول می‌تواند با درخواست دریافت اطلاعات انجام شود؛ اما ارسال فرم ثبت‌نام معمولاً به روشی نیاز دارد که داده‌ها را برای پردازش به سرور بفرستد. استفاده از روش درست، هم رفتار برنامه را قابل پیش‌بینی می‌کند و هم فهم درخواست را برای توسعه‌دهندگان آسان‌تر می‌سازد.

۰۴

۳. نوع و قالب داده‌ها را روشن کنید

گزینه data برای تعیین اطلاعاتی است که همراه درخواست به سرور فرستاده می‌شوند. این داده‌ها ممکن است از یک فرم، یک شیء جاوااسکریپت یا متغیرهای موجود در صفحه به دست بیایند. پیش از ارسال، مطمئن شوید نام فیلدها با چیزی که سرور انتظار دارد یکسان است.

گزینه dataType نوع پاسخ مورد انتظار را مشخص می‌کند؛ برای نمونه، می‌توانید انتظار پاسخ JSON یا متن داشته باشید. در مقابل، contentType نوع محتوایی را معرفی می‌کند که در درخواست ارسال می‌شود. این دو گزینه کاربرد متفاوت دارند و نباید با یکدیگر اشتباه گرفته شوند. اگر پاسخ JSON است، بهتر است ساختار دریافتی و امکان تبدیل آن را نیز بررسی کنید.

📡

url

آدرس مقصدی را مشخص می‌کند که درخواست به آن فرستاده می‌شود.

🎛️

method

روش HTTP مورد استفاده برای ارتباط با سرور را تعیین می‌کند.

💾

data

اطلاعاتی را که باید همراه درخواست ارسال شود نگهداری می‌کند.

۰۵

۴. موفقیت و خطا را جداگانه مدیریت کنید

تابع success زمانی اجرا می‌شود که درخواست با موفقیت تکمیل شود. پاسخ سرور به این تابع می‌رسد و می‌توانید بر اساس آن، بخشی از صفحه را تغییر دهید یا پیامی مناسب نمایش دهید. بهتر است به جای نشان دادن پاسخ خام، آن را متناسب با هدف صفحه پردازش کنید.

در کنار آن، گزینه error برای رسیدگی به درخواست ناموفق کاربرد دارد. خطا ممکن است به دلیل آدرس نادرست، مشکل ارتباطی، پاسخ نامعتبر یا خطای سمت سرور رخ دهد. نمایش یک پیام روشن به کاربر و ثبت جزئیات لازم برای بررسی فنی، تجربه کاربری و عیب‌یابی را بهتر می‌کند.

۰۶

۵. زمان‌بندی و وضعیت درخواست را در نظر بگیرید

درخواست شبکه ممکن است به دلایل مختلف بیشتر از حد انتظار طول بکشد. گزینه timeout برای تعیین زمان انتظار بر حسب میلی‌ثانیه به کار می‌رود. مقدار مناسب به نوع عملیات و شرایط برنامه بستگی دارد؛ برای یک جست‌وجوی سبک، انتظار طولانی معمولاً تجربه خوبی ایجاد نمی‌کند، اما عملیات زمان‌بر ممکن است به فرصت بیشتری نیاز داشته باشد.

تابع beforeSend پیش از ارسال درخواست اجرا می‌شود و می‌تواند برای آماده‌سازی رابط کاربری، مانند غیرفعال کردن موقت دکمه، استفاده شود. تابع complete پس از پایان درخواست، چه موفق باشد و چه ناموفق، اجرا می‌شود. از آن می‌توان برای بازگرداندن وضعیت دکمه یا جمع کردن نشانگر بارگذاری استفاده کرد.

نمونه کاربردی متد Ajax در jQuery

۰۷

نمایش پاسخ سرور در صفحه

در نمونه زیر، با کلیک روی دکمه، یک درخواست به فایل متنی فرستاده می‌شود. اگر درخواست موفق باشد، محتوای دریافتی در عنصری با شناسه div1 قرار می‌گیرد. این مثال برای آشنایی با روند کلی مناسب است؛ در پروژه واقعی باید آدرس و نوع پاسخ را با سرویس خود هماهنگ کنید.

$("button").click(function () {
  $.ajax({
    url: "demo_test.txt",
    success: function (result) {
      $("#div1").html(result);
    },
    error: function () {
      $("#div1").text("دریافت اطلاعات انجام نشد.");
    }
  });
});

در این کد، رویداد کلیک، درخواست را آغاز می‌کند و تابع موفقیت نتیجه را در صفحه قرار می‌دهد. تابع خطا نیز در صورت ناموفق بودن درخواست، پیامی جایگزین نمایش می‌دهد. برای نمایش متن ساده، استفاده از .text() می‌تواند از تفسیر ناخواسته پاسخ به عنوان HTML جلوگیری کند؛ اگر قرار است HTML نمایش داده شود، منبع و محتوای آن را با دقت بررسی کنید.

در بسیاری از صفحه‌ها، بهتر است هنگام شروع درخواست یک وضعیت بارگذاری نشان داده شود و پس از پایان کار، آن وضعیت برداشته شود. این کار را می‌توان با beforeSend و complete انجام داد. اگر کاربر بتواند چند بار روی دکمه کلیک کند، کنترل درخواست‌های تکراری نیز اهمیت پیدا می‌کند.

معرفی خدمات

برای حضور حرفه‌ای در وب برنامه‌ریزی کنید

اگر برای کسب‌وکار خود به خدمات طراحی سایت نیاز دارید، می‌توانید جزئیات بیشتری را در وب‌سایت پارس‌سافت ببینید.

مشاهده خدمات طراحی سایت ←

گزینه‌های مهم در درخواست Ajax

۰۸

گزینه‌های پرکاربرد چه کاری انجام می‌دهند؟

جدول زیر تعدادی از گزینه‌های متداول متد Ajax در jQuery را خلاصه می‌کند. بعضی گزینه‌ها مقدار ساده می‌گیرند و بعضی دیگر تابع هستند. لازم نیست همه آن‌ها را در هر درخواست وارد کنید؛ فقط گزینه‌هایی را بنویسید که برای سناریوی موردنظر لازم هستند.

گزینه کاربرد نکته
url تعیین آدرس مقصد درخواست مسیر باید با محل سرویس یا منبع موردنظر هماهنگ باشد.
method یا type تعیین روش HTTP روش درخواست را با API سمت سرور هماهنگ کنید.
data ارسال داده به سرور نام و قالب فیلدها باید با انتظار سرور مطابقت داشته باشد.
dataType تعیین قالب پاسخ مورد انتظار برای پاسخ‌هایی مانند JSON، نوع مورد انتظار را روشن کنید.
beforeSend اجرای تابع پیش از ارسال برای آماده‌سازی رابط کاربری یا افزودن تنظیمات درخواست کاربرد دارد.
success رسیدگی به پاسخ موفق نتیجه را متناسب با نیاز صفحه پردازش کنید.
error رسیدگی به درخواست ناموفق پیام قابل فهم و مسیر عیب‌یابی در نظر بگیرید.
complete اجرا پس از پایان درخواست برای پاک‌سازی وضعیت بارگذاری مناسب است.
timeout تعیین زمان انتظار بر حسب میلی‌ثانیه مقدار را با نوع عملیات و تجربه کاربری هماهنگ کنید.
cache کنترل استفاده از پاسخ ذخیره‌شده در مرورگر املای درست گزینه cache است، نه cashe.
processData کنترل تبدیل داده‌های ارسالی املای درست گزینه processData است.

راهنمای انتخاب و استفاده درست از گزینه‌ها

۰۹

قالب درخواست را با نیاز پروژه هماهنگ کنید

هنگام ساخت درخواست، ابتدا مشخص کنید سرور چه چیزی دریافت می‌کند و چه پاسخی برمی‌گرداند. سپس آدرس، روش HTTP و داده‌های لازم را انتخاب کنید. جدا کردن این تصمیم‌ها از کد مربوط به نمایش نتیجه، خوانایی برنامه را بالا می‌برد و تغییرات بعدی را آسان‌تر می‌کند.

اگر داده‌ها به شکل فرم ساده ارسال می‌شوند، jQuery معمولاً آن‌ها را برای درخواست آماده می‌کند. برای ارسال محتوای JSON یا فایل، ممکن است به تنظیمات دیگری در contentType و processData نیاز داشته باشید. در این حالت، مستندات API و رفتار سمت سرور را بررسی کنید؛ تنظیم نادرست این گزینه‌ها می‌تواند باعث شود سرور داده‌ها را به شکل مورد انتظار دریافت نکند.

✅

success

برای پردازش پاسخ موفق و به‌روزرسانی محتوای صفحه استفاده می‌شود.

🚨

error

برای مدیریت خطا و نمایش پیام مناسب هنگام شکست درخواست کاربرد دارد.

⏱️

timeout

مدت انتظار درخواست را بر حسب میلی‌ثانیه تعیین می‌کند.

۱۰

مقادیر پیش‌فرض و املای گزینه‌ها را بررسی کنید

در مستندات قدیمی یا نمونه‌کدهای پراکنده ممکن است نام یک گزینه با غلط املایی نوشته شده باشد. برای نمونه، شکل درست گزینه ذخیره‌سازی پاسخ در حافظه مرورگر cache است و نام درست گزینه پردازش داده‌ها processData است. استفاده از نام نادرست ممکن است باعث شود تنظیم موردنظر اعمال نشود.

همچنین مقدار پیش‌فرض گزینه‌ها در همه موقعیت‌ها یکسان نیست و می‌تواند با نوع درخواست یا نسخه jQuery ارتباط داشته باشد. به همین دلیل، برای رفتارهایی که در برنامه اهمیت دارند، بهتر است مقدار را صریح بنویسید و مستندات نسخه مورد استفاده را بررسی کنید. این کار از وابستگی ناخواسته به پیش‌فرض‌ها جلوگیری می‌کند.

اشتباهات رایج هنگام استفاده از Ajax

۱۱

نادیده گرفتن پاسخ ناموفق

نوشتن فقط تابع موفقیت کافی نیست؛ درخواست ممکن است به مقصد نرسد یا سرور خطا برگرداند. اگر هیچ مسیر جایگزینی در نظر گرفته نشود، کاربر ممکن است تصور کند صفحه از کار افتاده است. تعریف تابع خطا و نمایش پیام روشن، وضعیت را برای کاربر قابل فهم می‌کند.

۱۲

نمایش مستقیم داده بدون بررسی

قرار دادن پاسخ سرور در صفحه با .html() زمانی مناسب است که واقعاً می‌خواهید محتوای HTML نمایش دهید و منبع پاسخ قابل اعتماد باشد. برای متن ساده، .text() انتخاب محتاطانه‌تری است. پیش از نمایش داده‌های دریافتی، نوع پاسخ و نحوه استفاده از آن را مشخص کنید.

۱۳

ارسال دوباره درخواست‌های تکراری

اگر با هر کلیک درخواست تازه‌ای ارسال شود، کلیک‌های سریع ممکن است درخواست‌های تکراری ایجاد کنند. برای جلوگیری از این وضعیت، می‌توانید هنگام پردازش درخواست دکمه را موقتاً غیرفعال کنید و پس از پایان کار، آن را دوباره فعال کنید. این رفتار را با توجه به نوع عملیات و امکان ارسال مجدد طراحی کنید.

مزایای استفاده از متد Ajax در jQuery

مزایای متد Ajax در jQuery

ارتباط منعطف با سرور

درخواست هدفمند و مدیریت بهتر پاسخ
۰۱
تعامل

بدون بارگذاری کامل

به‌روزرسانی بخشی از صفحه با پاسخ سرور

۰۲
کنترل

گزینه‌های متنوع

تنظیم آدرس، روش و داده‌های درخواست

۰۳
مدیریت

رسیدگی به نتیجه

تفکیک پاسخ موفق از وضعیت خطا

۰۴
کاربرد

استفاده در رابط کاربری

نمایش نتیجه در بخش موردنیاز صفحه

۰۵
انعطاف

پشتیبانی از سناریوها

قابل تنظیم برای انواع نیازهای ارتباطی

۱۴

جمع‌بندی: چه زمانی از متد Ajax استفاده کنیم؟

متد Ajax در jQuery زمانی کاربرد دارد که صفحه باید بدون بارگذاری کامل با سرور ارتباط برقرار کند. با تعیین درست آدرس، روش درخواست و داده‌ها می‌توانید اطلاعات را ارسال یا دریافت کنید و با توابع موفقیت، خطا و پایان درخواست، رفتار برنامه را مدیریت کنید.

پیش از استفاده، قالب داده و پاسخ را با سرویس سمت سرور هماهنگ کنید، املای گزینه‌ها را بررسی کنید و برای خطاها پیام مناسبی در نظر بگیرید. اگر برنامه شما از ساختارهای جدیدتر جاوااسکریپت استفاده می‌کند، می‌توانید در کنار jQuery راهکارهایی مانند Fetch API را نیز بررسی کنید؛ اما انتخاب ابزار باید بر اساس نیاز پروژه و محیط موجود انجام شود.

سوالات متداول متد Ajax در jQuery

متد Ajax در jQuery چه کاری انجام می‌دهد؟

این متد درخواست را از صفحه وب به سرور می‌فرستد و امکان دریافت پاسخ را فراهم می‌کند. به کمک آن می‌توان بدون بارگذاری دوباره کل صفحه، بخشی از محتوا را به‌روزرسانی کرد.

ساختار پایه متد $.ajax() چگونه است؟

متد با یک شیء شامل جفت‌های نام و مقدار نوشته می‌شود؛ گزینه‌هایی مانند url، data و success از نمونه‌های رایج هستند. انتخاب گزینه‌ها به نوع درخواست و پاسخ موردنیاز بستگی دارد.

تفاوت گزینه‌های success و error چیست؟

success برای رسیدگی به درخواست موفق و پردازش پاسخ سرور اجرا می‌شود. error زمانی کاربرد دارد که درخواست با موفقیت انجام نشده باشد و بتوانید وضعیت را بررسی یا پیام مناسبی نمایش دهید.

گزینه data و dataType چه تفاوتی دارند؟

data اطلاعاتی را تعیین می‌کند که همراه درخواست به سرور فرستاده می‌شوند. dataType نوع پاسخی را مشخص می‌کند که از سرور انتظار دارید؛ بنابراین این دو گزینه وظایف متفاوتی دارند.

املای درست cashe و proccessData چیست؟

املای درست گزینه‌ها cache و processData است. نوشتن نام نادرست ممکن است باعث شود تنظیم موردنظر شناسایی یا اعمال نشود.

با درخواست‌های Ajax، تجربه روان‌تری بسازید

با انتخاب گزینه‌های درست و مدیریت پاسخ و خطا، می‌توانید ارتباط صفحه با سرور را هدفمندتر و قابل‌فهم‌تر کنید.

ادامه آموزش JQuery ←
ارسال نظر و نظرات ثبت شده
سایر مقالات
متد serializeArray ۵ نکته مهم درباره متد serializeArray در jQuery 💡آشنایی با متد در این بخش از آموزش JQuery، ب ...
متد serialize متد serialize در jQuery چیست و چگونه از آن استفاده کنیم؟ ⭐ آشنایی با serialize در این بخش از ...
متد $.post متد post در jQuery چیست و چگونه از آن استفاده کنیم؟ ⭐ آشنایی با درخواست POST در این راهنما، ...
متد load متد load در jQuery چیست و چگونه استفاده می‌شود؟ ⭐ متد load در jQuery متد load در jQuery ...
متد $.getScript آموزش jQuery متد getScript در jQuery؛ دریافت و اجرای فایل جاوااسکریپت نحوه استفاده، پارامت ...
متد $.getJSON آموزش جی کوئری متد $.getJSON در جی کوئری؛ آموزش دریافت داده های JSON نحوه استفاده، مدیریت ...
متد $.get آموزش jQuery آموزش متد $.get در jQuery؛ دریافت اطلاعات از سرور نحوه ارسال درخواست GET، دری ...
متد ajaxSuccess آموزش jQuery متد ajaxSuccess در jQuery؛ آموزش کاربرد و مثال آشنایی با رویداد موفقیت درخواس ...
متد ajaxStop آموزش jQuery متد ajaxStop در jQuery تشخیص پایان همه درخواست های هم زمان Ajax و اجرای کد من ...
متد ajaxStart آموزش jQuery متد ajaxStart در jQuery؛ آموزش کاربرد و مثال اجرای تابع هنگام آغاز درخواست&zw ...
متد $.ajaxSetup آموزش jQuery و Ajax متد ajaxSetup در jQuery: تنظیم پیش فرض درخواست های Ajax نحوه کار، نمون ...
متد ajaxSend آموزش jQuery متد ajaxSend در jQuery چیست و چگونه از آن استفاده کنیم؟ آشنایی با رویداد ارسا ...
متد ajaxError آموزش jQuery متد ajaxError در jQuery؛ مدیریت خطای درخواست Ajax نحوه کار، آرگومان‌ها، ...
متد ajaxComplete آموزش jQuery متد ajaxComplete در jQuery بررسی کاربرد، پارامترها، مثال عملی و نکات مهم روید ...
متد ajax آموزش jQuery متد Ajax در jQuery؛ راهنمای ارسال درخواست به سرور آشنایی با ساختار درخواست Aj ...
متد Get و Post ای جکس در جی کوئری آموزش jQuery Ajax متدهای GET و POST در jQuery Ajax انتخاب متد مناسب، ارسال داده و مدیریت پ ...
Ajax در Jquery چگونه است ؟ Ajax در jQuery چیست و چگونه کار می‌کند؟ 💡آشنایی با ایجکس Ajax در jQuery روشی ساده بر ...
دسته بندی
جستجو
⏳ در حال پردازش...
لطفا صبر کنید