나는 초 단위로 실행되는 setInterval 함수를 가지고 있습니다. 이제 브라우저에서 내 콘솔을 탐색하고 있었는데 setInterval 함수 내부의 함수가 두 번 실행되는 경우가있었습니다. 두 번 실행하지 못하게하려면 어떻게해야합니까? 여기에, 이제 check_getqueue
함수 내에서 나는 또한 내가 두 번 실행을 방지하고자하는 기능을 가지고setInterval 함수가 두 번 실행되는 것을 방지합니다.
$('#myclinic_id').change(function(){
clearInterval(interval);
lastQueueID = 0;
$("#boxqueue").empty();
var selectedClinicID = $(this).val();
clinicID = selectedClinicID;
statusClinic(clinicID, userID);
show_patients(clinicID, userID);
if(selectedClinicID != "0" || selectedClinicID != undefined){
interval = setInterval(function(){
check_getqueue(clinicID, userID);
}, 4000);
}
});$('#myclinic_id').change(function(){
clearInterval(interval);
lastQueueID = 0;
$("#boxqueue").empty();
var selectedClinicID = $(this).val();
clinicID = selectedClinicID;
statusClinic(clinicID, userID);
show_patients(clinicID, userID);
if(selectedClinicID != "0" || selectedClinicID != undefined){
interval = setInterval(function(){
check_getqueue(clinicID, userID);
}, 4000);
}
});
내 문제가 발생할 수 있습니다 :
여기 내에서는 setInterval입니다. 다음은 check_getqueue 함수 안에있는 코드입니다. check_getqueue 함수 안에 refresh_afterdel(clinicID, userID);
이라는 함수를 두 번 실행하지 않아도됩니다.
function check_getqueue(clinicID, userID) {
var tmpCountQ = [];
$.ajax({
url: siteurl+"sec_myclinic/checkingUpdates/"+clinicID+"/"+userID,
type: "POST",
dataType: "JSON",
success: function(data) {
for(var i=0;i<data.length;i++) {
tmpCountQ.push(data[i]['queue_id']);
};
if(typeof lastCon[0] != "undefined")
{
for(j=0;j < tmpCountQ.length;j++)
{
if(tmpCountQ[j] != lastCon[j])
{
refresh_afterdel(clinicID, userID);
lastCon[j] = tmpCountQ[j];
}
}
}
else
{
lastCon = tmpCountQ;
}
// console.log("lastCon "+lastCon)
// console.log("tmpCountQ "+tmpCountQ);
}
});
}
가 중복 코드를 삭제하고 그 결과가 돌아올하는 데 걸린 시간을 면도? – evolutionxbox
대신'setTimeout()'사용 – mike510a