2011-10-08 4 views
1

아약스로 정확한 정보를 얻기 위해 자바 스크립트로 폴링을 사용하고 있습니다.자바 스크립트로 폴링하지만 시간 간격이 다릅니다.

intervalRequestId = setInterval('loadInfo()', 2500); 

정보가 다른 시간 간격으로 전송되므로 다른 시간 간격으로 폴링을 만들고 싶습니다. 예 :

첫 번째 요청 : 2 초 후 -> very importand가 2 초 후입니다! 두 번째 요청 : 7 초 후 세 번째 요청 (15 초 후) 네 번째 요청 (25 초 후)

가능성이 있습니까?

+0

다섯 번째 요청은 어떻게됩니까? 간격이 바뀔까요? –

답변

1
(function(){ 
var iteration = 0, // keep track of your iterations 
    delays = [7000, 15000, 25000], // delays between iterations 
    callback; // wrapper for your loadinfo() 

callback = function(){ 
    // run your function 
    loadinfo(); 
    // determine next delay, if not set, use the last of the sequence 
    var delay = delays[iteration] || delays[delays.length - 1]; 
    // next run, next iteration 
    iteration++; 
    // register callback to run after determined delay 
    setTimeout(callback, delay); 
}; 

// run first execution after 2 seconds 
setTimeout(callback, 2000); 
})(); 
+0

멋진 물건, 고마워! 나는 다른 방식으로 그것을 만들었습니다. 반복 작업도 세지 만 일부 반복 작업 만 허용되는 경우에만 Ajax 호출이 실행됩니다. 내 대답도 올리겠습니다. –

관련 문제