کنترل درخواست های ایجکس در Jquery
کنترل درخواست های ایجکس در Jquery
در این پست قصد داریم تا نحوه کنترل درخواست های ایجکس در jquery را مورد بررسی قرار دادیم. با استفاده از این روش شما به راحتی می توانید بار پردازش درخواست سرور را کم کنید.
مشکل اینجاست فرض کنید زمانی که کاربر درخواستی ایجکس را به سرور ارسال کند و در حالی که جواب درخواست ایجکس اولی نرسیده باشد دوباره درخواست ایجکس دیگر را ارسال کند تکرار این عمل باعث افزایش درخواست های ایجکس می شود.
برای حل این مشکل یک را حل آسانی وجود دارد
ابتدا در کدهای زیر بررسی می کنیم که در صورتی که درخواست ایجکسی فعال یا ارسال شده باشد متغیر action را برابر true قرار می دهیم.
// بررسی پایان ایجکس var active = false; $(document).ajaxStart(function () { active = true; }).ajaxStop(function () { active = false; });
کدهای بالا زمانی که یک درخواست ایجکس ارسال می شود فراخوانی می شود.
سپس زمانی که درخواست ایجکس کاربر را به سرور ارسال می کنیم بررسی می کنیم که متغیر action برابر false باشد و سپس درخواست ایجکس را به سرور ارسال می کنیم
if (!active) { $.ajax({ url: url, type: 'GET', cache: false, success: function (result) { $('#div').html(result); } }); }
در صورتی که متغیر action برابر true باشد یعنی درخواست ایجکس به سرور ارسال شده و نتیجه این درخواست از سمت سرور ارسال نشده در صورتی که نتیجه درخواست ایجکس از سرور ارسال شود متغیر action برابر false خواهد شد
نکته بسیار مهم این است که می توان زمانی که متغیر action برابر true باشد و کاربر دوباره درخواست ایجکس ارسال کند پیغام هشدار مبنی بر این که درخواست قبلی شما در حال پردازش می باشد را نمایش دهید.
نظر / سوال