나는 JQWidgets을 사용하여 원형 차트를 만듭니다. 그리고 그것이 모두 멋지고 멋쟁이이며 매력처럼 작동하는 동안. 그러나 내가하고 싶은 것은 x 초마다 데이터를 업데이트하는 것입니다.jQuery ajax 호출에서 setInterval을 사용하는 가장 좋은 방법은 무엇입니까?
이function loadChart(id,name){
//chart loads here
var speed = 5000,
t = setInterval(reloadData,speed);
function reloadData() {
source.url = 'data.php?id='+id;
var dataAdapter = new $.jqx.dataAdapter(source);
$('#pie').jqxChart({ source: dataAdapter });
console.log('reloading pie...'+globalPieId);
speed = 5000;
clearInterval(t);
t = setInterval(reloadData, speed);
}
}
내 문제는 loadChart 함수가 호출되는 경우, setInterval을 다른 인스턴스가 만들어 졌는지, 그리고 서너 시간 후, 차트에 있습니다 : jQuery를 사용하여, 여기에 내가 지금까지 가지고 그 코드 새로 고침의 일정한 상태. 하나의 인스턴스 만 호출되도록 내 setInterval 호출을 최적화하는 방법은 무엇입니까?
미리 감사드립니다.
대신 'setTimeout'을 사용하고 마지막 호출에서 콜백을 받았을 때만 새로운 타임 아웃을 추가하십시오. (당신은 이미 그것을하고있는 것 같습니다) – lfxgroove
@lfxgroove가 머리에 못을 박았습니다. 'interval'을 버리고'timeout'으로 대체하는 것은 약간의 코드 만 변경하면됩니다.'timeout'이 처리하기 때문에'clearInterval'을 제거 할 수 있습니다. – tymeJV
좋은 설명 : http://reallifejs.com/brainchunks/repeated-events-timeout-or-interval/ –