Huỳ*_*yễn 2 javascript event-loop infinite-loop task-queue
在这段视频(10:00) 中,这家伙说无限while (true);循环会阻止渲染,这会使 gif 停止动画。但是当我自己尝试代码时,我仍然无法选择段落文本,但是gif仍然是动画,我哪里误解了?我的代码和视频中的代码有什么区别?我的代码在这里:
<img src="https://media.giphy.com/media/3o85xsGXVuYh8lM3EQ/giphy.gif" alt="">
<button id="click">Click Me</button>
<p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Quam saepe ratione possimus reiciendis ad ipsa architecto mollitia deserunt, delectus optio soluta quisquam magni ducimus sapiente vero. Cupiditate, et reprehenderit! Ea placeat sit a ab</p>
<script>
document.getElementById("click").addEventListener("click", ev => {
while (true) {
console.log("in the loop")
}
})
</script>Run Code Online (Sandbox Code Playgroud)
这个问题的直接答案是:行为实际上不同于 Chrome 和 Firefox(其他浏览器也是如此)。当我尝试使用 Firefox 时,gif 被阻止(如视频中所示),但在 Chrome 中,它仍在动画中。