私は純粋なフロントエンドの開発者ではありません。なぜなら、各繰り返しで要素がDOMに追加されるループで、結果として生じるDOMは、ループの終わりにのみ表示され、漸進的には表示されません。ループの終わりのすべてではなく、すべての繰り返しで1つの要素をDOMに追加してください。
<html>
<body>
<div id="body"></div>
</body>
<script>
for(var i = 0; i < 1000000; i++){
document.getElementById('body').appendChild(document.createElement('br'));
document.getElementById('body').appendChild(document.createTextNode(i));
}
</script>
</html>
彼らは、一度に1つを追加しましたのですか。ブラウザは、再描画する前に停止するのを待っています。 –
JavaScriptは1000000まですばやくカウントされ、ブラウザは再描画に時間がかかるため、 –
簡単な答えは、javascriptエンジンが同期タスクを完了し、DOMを更新できるときに、DOMがティックで "再ペイント"されるからです。より正確な答えは、実装、マイクロタスク、イベントループと最適化と関係しています – adeneo