데이터를 가져 와서 1 초마다 HTML에 추가하는 AJAX 함수가 있습니다. 가져올 데이터가 많기 때문에 AJAX를 사용하는 이유가 있습니다. 그래서 나는 한계 (100 데이터 당 한도)를 가져올 필요가있다, 그래서 간격을 사용하여 AJAX 함수를 새로 고침, 문제는 데이터가 항상 동일하기 때문에, 기능이 완료되기 전에, 간격 새로 고침 다시이 기능을 해결할 방법이 있습니까?간격을 사용하여 다시 함수를 다시로드 할 때까지 ajax 함수가 완료 될 때까지 대기합니다.
JQuery와 AJAX 코드 :
var ctr = 0;
var pct = 0;
var total = 0;
var bnprd = "<?php echo $bonperiod;?>";
var bnsrt = "<?php echo $bonsort;?>";
var mybonperiod = "<?php echo $mybonperiod;?>";
var sc = '000';
var interval;
window.onload = function() {
{getDataNoBreak();}
};
interval = window.setInterval(function() {getDataNoBreak()}, 0);} //set the interval
function getDataNoBreak() {
jQuery(document).ready(function() {
jQuery.ajax({
url: "{{ url('panel/bonus/payviasc/getDataNoBreak') }}",
type: 'POST',
data: {_token :'{{ csrf_token() }}',counter : ctr, bonperiod: bnprd, bonsort: bnsrt},
dataType: "json",
success: function(data) {
if(ctr==0){ total = data[0].total;}
for(var i =0; i < data.length; i++) {
if(data[i].loccd) sc = data[i].loccd;
else sc = '000';
var htm = '';
htm += '<tr>';
htm += '<td data-label="MEMBER">'+ data[i].dfno +' </td>';
htm += '<td data-label="MEMBER NAME">'+ data[i].fullnm +' </td>';
htm += '<td data-label="SC">'+ sc +' </td>';
htm += '<td data-label="PERIOD">'+ mybonperiod +' </td>';
htm += '<td data-label="GRADE">'+ data[i].level +' </td>';
htm += '<td data-label="BONUS">'+ data[i].totbns +' </td>';
htm += '<td data-label="SIGNATURE"> </td>';
htm += '</tr>';
$("#isi").append(htm);
pct += 1;
var totalPct = (pct/total)*100;
$("#progress".html('<div class="progress-bar progress-bar-striped active" style="width:' + totalPct + '%"></div>'));
$("#message").html('Loading data...');
if (totalPct == 100) {
completed();
}
}
if(ctr < total-1) ctr+=101;
}
,
error: function(data) {
}
});
});
}
function completed() { //when the interval is finish
$("#message").html("Completed");
if(pageBreak == 0){
$('#payviabank').DataTable({
"paging": true,
"lengthChange": false,
"searching": true,
"ordering": false,
"info": true,
"autoWidth": false
});
}
window.clearInterval(interval);
}
그래서 중첩 된 함수입니까? –
그것은 재귀 적입니다. 그것이 성공하면 스스로를 호출합니다. 당신도 그것을 완료 할 수 있습니다. –