Я бы хотел отменить, если мой ajax-запрос занимает много времени при медленном соединении.
Я показываю оверлей, когда .ajaxStart()
, и если это занимает больше пяти секунд (я справился с setInterval
), на оверлее появляется кнопка, которая должна отменить текущий запрос ajax.
Вот часть моего кода:
jqXHR = $.ajax({
url: 'includes/inc_ajax.php',
type: 'POST',
data: '&ajax=1&action=7',
success: function (txt) {
var cntr = $.parseJSON(txt);
$("#onlineppl").html(cntr.online);
$("#todayppl").html(cntr.bugun);
$("#totalppl").html(cntr.toplam);
}
});
$("#abortAjax").button({ icons: {secondary: "ui-icon-cancel"} }).click(function() {
$(jqXHR).abort();
});
Нужно ли назначать функцию $.ajax()
переменной, чтобы прервать ее? У меня также есть много запросов ajax, вызываемых ajax, поэтому я думаю, что браузер не может отследить то же имя переменной, которое приводит к тому, что метод abort не работает.
Это мой первый вопрос, и я немного растерялся. Любая помощь приветствуется. Спасибо.