Вы можете установить переменную в качестве монитора и таймера для вызова ajax каждые 5 секунд, пока не завершится вызов ajaxCall.
Для монитора установлено значение var gotAjax = false
, а при успешной реализации Ajax устанавливается значение true gotAjax = true
.
Вместо прямого вызова $ ajax, вы устанавливаете время через setTimeout(ajaxCall, 5000)
. Если в таймере установлено ajaxCall
, таймер очищается через clearTimeout(ajaxCall)
.
$(function() {
var gotAjax = false;
var ajaxCall = function () {
if (!gotAjax) {
$.ajax({
url: '../SentinelOperationsUI/GenericHandler.ashx',
dataType: 'json',
data: {
'FunctionName': 'GetActivity',
'SearchType': 'Single',
'postedData': JSON.stringify($('#content').data('postedData'))
},
success: function(data) {
gotAjax = true;
$('#content').data('activityKey', data.SENTINEL_OPERATION_ACTIVITY_KEY);
$.ajax({
url: '../SentinelOperationsUI/ajax/activityviews/' + data.ACTIVITY_VIEW,
dataType: 'html',
success: function(data) {
$('#content').hide().html(data).fadeIn(200);
$('#parenttabs, #tabs, #tabs2, #parenttab-1, #parenttab-2').tabs();
}
});
}
});
}
else {
clearTimeout(ajaxCall);
}
};
setTimeout(ajaxCall, 5000);
});