我正在读html specs concerning web api's,基本上说的是
事件循环从任务队列执行了某些任务后,需要更新渲染(如果这是窗口事件循环)
还据说,用户代理可以通过某种方式告知不需要更新渲染(请参见上面链接中的第10.3节“不必要的渲染”)
所以我的问题是:如果我有一个简单的index.html文件,并且仅附加了一个脚本文件-index.js
index.html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Test</title>
</head>
<body>
Hello StackOverflow
<script src="./index.js"></script>
</body>
</html>
index.js
function add(a,b) {
console.log(a+b);
}
function modifyBackground() {
document.body.style = 'background : red';
}
console.log('Hello world'); // Task 1
add(4,5); // Task 2
modifyBackground(); // Task 3 Will the render be updated only here?
我这样看-index.js中有3个任务。第一个任务是console.log
任务,它首先被添加到事件循环中的任务队列中。然后是add
任务,最后是modifyBackground
任务。
从理论上讲,如果用户代理无法知道我们是否确实需要更新渲染,则它应该在每个任务之后更新渲染。
仅当我在最后一行调用modifyBackground()
方法时才会进行重新渲染吗?而且,如果是这样,用户代理如何告知不需要重新渲染?
建议。如果您需要澄清一下,我想知道,例如google chrome的用户代理如何告知不需要重新渲染。