无限Javascript循环会阻塞渲染吗?

问题描述 投票:1回答:1

this video(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>
javascript infinite-loop task-queue event-loop
1个回答
0
投票

[通常来说,是的,这段视频是真实的。

您正在体验的是,现代浏览器无法在同一CPU线程上完成所有操作,并且对于某些操作(例如渲染视频或some动画,它们甚至不会使用CPU,而是使用GPU(从图形卡)。

阻塞CPU不会阻塞GPU,但是请注意,在某些时候,它们需要返回主线程(例如,在滚动后执行页面重排),然后被迫停止甚至所有的GPU渲染。

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.