2014-09-19 6 views
0

지연 시간이 10 초인 루프에서 몇 줄을 실행하려고합니다. 아래 코드를 추가하십시오.jquery에서 루프 실행 지연 추가

  $(xmlResponse).find("row").each(function() 
      { 
       setInterval(
        //some set of code here 
       ,10000); 
      }); 

내가 제대로하고 있는지 알고 싶습니다. 제발 저를 인도 해 주실 수 있습니까?

감사합니다, 애쉬 윈

+1

코드를 실행 했습니까? – worldask

+0

setInterval은 10 초당 한 번 실행됩니다. 단 한 번 실행하려면 setTimeout으로 변경하십시오. – worldask

+0

루프의 반복을 실제로 대기 또는 지연시킬 수 없습니다. 그건 자바 스크립트가 작동하지 않습니다. 앞으로'setTimeout()'을 사용하여 코드를 실행할 수 있도록 일정을 잡을 수는 있지만, 정확히 여기에 원하는 것이거나 10 초에 한 번씩 반복적으로 반복하고 싶다면 질문에서 명확하지 않습니다. 당신이 실제로 이루고자하는 것을 자세하게 기술하십시오. – jfriend00

답변

0

그것은 단지 한 번 화재로 당신은 아마에서는 setTimeout()을 원하는 :

$(xmlResponse).find("row").each(function() { 
    setTimeout(//some set of code here ,10000); 
}); 
0

을 지금은 영업 이익은 10 초마다가 .each() 루프에서 하나의 작업을 실행하고자 분명 것으로, 거기에 여러 가지 방법이 있습니다. 한 가지 방법은 setTimeout() 번의 전체 묶음을 쌓아서 전체 루프의 미래 일정을 잡는 것입니다. 나는 그것을하지 않는 것을 선호한다. 왜냐하면 그것이 미래의 일에 대해 논리적 인 결정을 내리기가 어렵 기 때문이다. 오히려 다음과 같이 자주 사용하는 디자인 패턴을 반복하는 방식을 변경하는 경향이 있습니다.

var rows = $(xmlResponse).find("row"); 
var cntr = 0; 
function nextRow() { 
    if (cntr < rows.length) { 
     var currentRow = rows.eq(cntr); 

     // do your operation on currentRow here 

     ++cntr; 
     // schedule the next row for 10 seconds from now 
     setTimeout(nextRow, 10 * 1000); 
    } 
} 
// start the first one 
nextRow();