我有一個簡單的計數回圈,計數到 10000 并將每個數字記錄到控制臺。在我開始回圈之前,我想在我的 html 中將“TEST”寫入正文。盡管我在開始回圈之前執行此操作,但它僅在回圈完成后才將“TEST”附加到正文中。但是,我可以在開始回圈之前將某些內容記錄到控制臺。我想我正在阻塞瀏覽器執行緒或其他東西,我不知道如何以非阻塞方式撰寫它。很長一段時間以來,我一直試圖弄清楚這個問題。您的幫助將不勝感激!!!
我的 HTML 代碼:
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1">
</head>
<body>
<button onclick="myfunc()">click me</button>
</body>
<script src="index.js"></script>
</html>
我的 JavaScript 代碼:
function myfunc() {
var h1 = document.createElement("h1").innerText = "TEST"
document.body.appendChild(h1) //appends only after loop is done
console.log("test") // this works
for (var i = 0; i < 10000; i ){
console.log(i)
}
}
uj5u.com熱心網友回復:
一種解決方案是將回圈代碼放入 atimeout
并將延遲設定為 1 毫秒
function myfunc() {
var h1 = document.createElement("h1")
h1.innerText = "TEST"
document.body.appendChild(h1) //appends before the loop
console.log("test") // this works
setTimeout(()=>{
for (var i = 0; i < 10000; i ){
console.log(i)
}
},1)
}
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1">
</head>
<body>
<button onclick="myfunc()">click me</button>
</body>
<script src="index.js"></script>
</html>
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/504647.html
標籤:javascript html 循环 dom 支配权
下一篇:使用Ansible構建專有名稱