Вот что я делаю в моих проектах,
Если я вижу длительную задержку в ответ Ajax, я просто прервать запрос предыдущий АЯКС и сделать новый запрос в том же методе, как показано ниже,
Примечание: я не вызываю метод GetData() в любом цикле, скорее это действие нажатия кнопки (например, обновление) пользователя приложения.
function GetData()
{
if (getDataAjaxCall && getDataAjaxCall.readyState != 4)
getDataAjaxCall.abort();
var searchRequest = {};
searchRequest.Criteria = []; //set some criteria
getDataAjaxCall = $.ajax({
url: 'api/DataController/GetData',
type: 'POST',
dataType: 'json',
data: searchRequest,
success: function (data, textStatus, xhr) {
//do tasks you want on success
},
error: function (xhr, textStatus, errorThrown) {
$.unblockUI();
if (textStatus != 'abort') {
//display error message on actual error
}
}
});
}
Я надеюсь, что приведенные выше строки кода могут дать вам некоторую идею.
Также в обратном вызове ошибки поместите чек, чтобы перехватить прерывание и обработать его отдельно.
Вы можете поместить этот ajax в одну функцию и называть его снова –
"* Есть ли способ перезагрузки? *« Нет, просто отправьте другой, как любой другой запрос. –