How can we improve this code?
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>Dynamic List</title> </head> <body> <ul id="myList"></ul> <script> let items = [...Array(1000).keys()].map((i) => `Item ${i}`); let ul = document.getElementById("myList"); for (let item of items) { let li = document.createElement("li"); li.textContent = item; ul.appendChild(li); } </script> </body> </html>
In the initial example, we are appending each list item to the DOM as we create it. This is inefficient because the DOM is updated each time we append a new list item. Instead, we can create a document fragment and append all of the list items to the fragment. Then, we can append the fragment to the DOM. This way, the DOM is only updated once.
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>Dynamic List</title> </head> <body> <ul id="myList"></ul> <script> let items = [...Array(1000).keys()].map((i) => `Item ${i}`); let ul = document.getElementById("myList"); let fragment = document.createDocumentFragment(); for (let item of items) { let li = document.createElement("li"); li.textContent = item; fragment.appendChild(li); } ul.appendChild(fragment); </script> </body> </html>