자바 스크립트 코드에서 반복 횟수가 10,000 회를 초과하는 for 루프가 있습니다. for 루프는 < div> 태그를 만들고 현재 페이지 DOM의 상자에 추가합니다. 그 모든 10,000 < 사업부를로드하는 데 너무 많은 시간을 할애하기 때문에자바 스크립트 : 자바 스크립트 코드 실행 사이에 간단한 지연을 넣는 방법은 무엇입니까?
for(i = 0; i < data.length; i++)
{
tmpContainer += '<div> '+data[i]+' </div>';
if(i % 50 == 0) { /* some delay function */ }
}
containerObj.innerHTML = tmpContainer;
은 내가
/* some delay function */
의 장소에서 코드가 될 것입니다 무엇 때문에 매 50 < div> 태그 후 지연을 데려 가고 싶다는> 태그. 나는 상자를 50 < div> 태그의 덩어리로 업데이트하려고합니다.
미리 감사드립니다.
두 가지 주석은 작동합니다. 1. 50 div에 도달 할 때마다 ** 새로운 ** 기능이 불필요하게 생성됩니다. 그것은 199 가지의 불필요한 기능입니다. 아마 괜찮 겠지 만 여전히 피할 수있는. 2. 문자열 배열에서 HTML을 만든 다음 문자열 연결을 사용하여 HTML을 빌드하는 것보다'a.join ("")'을 사용하여 완료되면 하나의 큰 문자열을 만드는 것이 더 효율적입니다. –
@ T.J. 당신은 그 두 가지 점에 대해 옳았습니다. 그러나 단순화를 위해 귀찮게하지 않았습니다 : 1. 기능 생성은 거의 성능상의 문제가 아닙니다. 병목 현상이 DOM 일 때 특히 그렇습니다. 2. 문자열 연결은 IE에서만 문제이며, 그리고 종종 다른 브라우저에서 더 빠르지 만 IE의 경우에도 'tmpContainer'를 빈 문자열로 재설정하기 때문에 문자열은 결코 커지지 않습니다.) –
정말 멋진 솔루션입니다. –