대부분의 브라우저에서 JavaScript는 UI 스레드에서 실행되므로 설명하는대로 UI를 차단합니다. UI 차단을 해제하는 가장 좋은 방법은 JS를 더 작은 부분으로 나누고이를 setTimeout과 함께 연결하는 것입니다 (UI 렌더링을 위해 스레드 제어를 브라우저에 다시 제공함).
-------------------페이지에 새 스크립트 태그를 삽입하여 코드를 실행할 수도 있습니다.
function executeCode(code) {
var element = document.createElement('script');
element.type = 'text/javascript';
try {
element.appendChild(document.createTextNode(code));
document.body.appendChild(element);
}
catch (e) {
element.text = code;
document.body.appendChild(element);
}
}
var code = 'alert("hello world");';
executeCode(code);
-------------------기능을 더 작은 부분으로 나누어야합니다. 나는 그것들을 setTimeout
.
최신 브라우저에는 백그라운드에서 데이터를 계산할 수 있는 웹 작업자 가 있습니다.
출처
https://stackoverflow.com/questions/2002879