PDA

View Full Version : متوقف کردن درخواست آیجکس ایجاد شده با تابع ajax



i-php-i
چهارشنبه 31 اردیبهشت 1393, 01:37 صبح
چطور می تونم اجرای تابع ajax رو متوقف کنم؟ البته به اینصورت باشه که وقتی کاربر روی لینک لغو درخواست کلیک کرد، تابع ajax متوقف بشه.

mehdi.mousavi
چهارشنبه 31 اردیبهشت 1393, 10:13 صبح
چطور می تونم اجرای تابع ajax رو متوقف کنم؟ البته به اینصورت باشه که وقتی کاربر روی لینک لغو درخواست کلیک کرد، تابع ajax متوقف بشه.

سلام.
وقتی تابع ajax رو برای ارسال درخواست اجرا می کنید، مقدار بازگشتی اون یک jqXHR Object هستش که اگر روی اون، متود abort رو call کنید، درخواست مورد نظر متوقف میشه:

var xhr = $.ajax({
type: 'POST',
url: 'whatever.aspx',
success: function(msg){
console.log('done');
}
});

//Now, let's cancel the above request...
xhr.abort();

موفق باشید.

i-php-i
چهارشنبه 31 اردیبهشت 1393, 22:22 عصر
اگر اسکریپت سمت سرور اجرا شده بود، لغو این تابع فایده ای داره؟

mehdi.mousavi
پنج شنبه 01 خرداد 1393, 12:59 عصر
اگر اسکریپت سمت سرور اجرا شده بود، لغو این تابع فایده ای داره؟

خیر. فراخوانی این تابع، تغییری در روند اجرایی درخواست ارسال شده ایجاد نمیکنه و فقط سمت Client،
درخواست لغو خواهد شد. به بیان دیگه، success callback دیگه اجرا نمیشه و client منتظر پاسخ نخواهد موند.
اگر هم درخواست هنوز به سرور ارسال نشده باشه، abort ارسال درخواست رو متوقف خواهد کرد.

موفق باشید.