React Fiber: requestIdleCallback demo
requestIdleCallback
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style>
.playground {
background-color: palegoldenrod;
padding: 20px;
}
</style>
</head>
<body>
<div id="box" class="playground"></div>
<button id="btn1">执行计算任务</button><button id="btn2">更改背景颜色</button>
<script>
var box = document.getElementById('box')
var btn1 = document.getElementById('btn1')
var btn2 = document.getElementById('btn2')
var number = 99999
var value = 0
function calc(deadline) {
while (number > 0 && deadline.timeRemaining() > 1) {
value = Math.random() < 0.5 ? Math.random() : Math.random()
console.info(value)
number--
}
requestIdleCallback(calc)
}
btn1.onclick = function () {
requestIdleCallback(calc)
}
btn2.onclick = function () {
box.style.background = 'green'
}
</script>
</body>
</html>
Keep learning

浙公网安备 33010602011771号