변수를 모니터로 설정하고 ajax 호출이 완료 될 때까지 5 초마다 ajax 호출을 실행하는 타이머를 설정할 수 있습니다. 모니터는 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);
});
을 통해 타이머를 클리어와 아약스는 실행해야합니다 - 당신은 몇 가지 다른 문제가 있습니다. 코드를 업로드하십시오. –
코드를 게시하면 도움이 될 것입니다. :) –
@RoyiNamir 코드 업로드 – Johan