여기에있는 모든 답변에 놀랐습니다 ...
이 시도:
window.setTimeout(function() { }, 0);
0 시간 초과에 유의하십시오. 그것은 임의의 숫자가 아닙니다 ... 내가 이해하는 바와 같이 (내 이해가 약간 흔들릴 수 있지만) 두 개의 자바 스크립트 이벤트 큐가 있습니다. 하나는 매크로 이벤트 용이고 다른 하나는 마이크로 이벤트 용입니다. "큰"범위의 대기열은 UI (및 DOM)를 업데이트하는 작업을 보유하고 마이크로 대기열은 빠른 작업 유형 작업을 수행합니다.
또한 시간 제한을 설정한다고해서 코드가 지정된 값에서 정확히 수행되는 것은 아닙니다. 이것이하는 일은 본질적으로 함수를 더 높은 큐 (UI / DOM을 처리하는 큐)에 넣고 지정된 시간 전에 실행하지 않는 것입니다.
즉, 시간 제한을 0으로 설정하면 자바 스크립트 이벤트 큐의 UI / DOM 부분에 배치되어 다음 가능한 기회에 실행됩니다.
즉, DOM이 이전의 모든 대기열 항목 (예 :를 통해 삽입 됨)으로 업데이트되고 $.append(...);코드가 실행될 때 DOM을 완전히 사용할 수 있습니다.
(ps- Secrects of the JavaScript Ninja 에서 배웠습니다 -훌륭한 책 : https://www.manning.com/books/secrets-of-the-javascript-ninja )
append()시간이 거의 걸리지 않습니다.