Javascript 为什么页面之间只有铬白色闪烁?
我知道开发人员多次询问这个话题,并多次给出关于如何优化页面、优化脚本运行等的高质量答案,和/或建议选择不太华丽的背景。但我认为这是一个新的方面 当然,我的网页并没有得到完美的优化,但事实是:在测试我的网页时,这个非常不友好的空白页面(无论是什么颜色)只在Chrome中出现过。在FF和IE中进行测试时,无法在页面渲染之间看到任何空白页面Javascript 为什么页面之间只有铬白色闪烁?,javascript,jquery,html,css,google-chrome,Javascript,Jquery,Html,Css,Google Chrome,我知道开发人员多次询问这个话题,并多次给出关于如何优化页面、优化脚本运行等的高质量答案,和/或建议选择不太华丽的背景。但我认为这是一个新的方面 当然,我的网页并没有得到完美的优化,但事实是:在测试我的网页时,这个非常不友好的空白页面(无论是什么颜色)只在Chrome中出现过。在FF和IE中进行测试时,无法在页面渲染之间看到任何空白页面 有人可能会想:在我的代码/css中有一些条件逻辑,检测Chrome。没有 而且,在Chrome中,页面实际上加载速度相同或更快 请注意:Chrome的这种渲染差
- 有人可能会想:在我的代码/css中有一些条件逻辑,检测Chrome。没有
- 而且,在Chrome中,页面实际上加载速度相同或更快
- 请注意:Chrome的这种渲染差异行为在许多外部世界的网站上都很容易体验到,而不仅仅是在我的网站上
如果有人想要这段视频,请留下评论。这就是Chromes
加载解析渲染等过程的工作原理。它会尽快开始渲染,即使实际上没有要显示的内容。所以你看到了白色的屏幕
举两个例子就清楚了
1.
html
现在,当解析器停止加载远程脚本时,它已经有了要显示的内容,这是在前面的script
标记中生成的。除了脚本
,还可以有任何其他html
内容,当加载和评估远程脚本时,引擎继续处理其余内容,并呈现它。这里的时间线是一样的
现在,如果您在Firefox中打开该示例,您将看到同时呈现的
。Firefox只是延迟第一次呈现,而不清除页面。在时间轴中,您将只看到一个Paint
事件
我在这里使用的jQuery
仅用于网络加载目的,因为我需要一些不小的远程库,所以希望您能用肉眼看到渲染效果
在第二个示例中,我使用了脚本生成的内容,因此您会注意到Firefox实际呈现的时间
但很难说什么方法更好。就我个人而言,我喜欢当它真正显示出它所拥有的东西时,正如我当时看到的那样,真正的进步。你可以试试这个:白色闪烁?你是说福克吗?问题不在于铬。从地球的另一边或者从一台90年代的56k电脑上运行你的页面,你到处都会遇到这个问题。@SvenvandeScheur:我已经尝试过,(应用过,然后在Chrome开发工具中检查是否实际应用了样式(是)),但不幸的是仍然是相同的空白闪烁。你有这个测试用例吗,所以我们可以在我们自己的机器上看看是否正确?@DeblatonJean-Philippe:除了个人偏好之外,你是对的。这是我试图在我的问题的第一个,但似乎没有人对它感兴趣。。。
<!DOCTYPE html>
<html>
<body>
<script src='https://code.jquery.com/jquery-2.1.4.js'></script>
<h4>Header</h4>
</body>
</html>
<!DOCTYPE html>
<html>
<body>
<script>
function showTimespan() {
var h4 = document.createElement('h4');
h4.textContent = Date.now();
document.body.appendChild(h4);
}
showTimespan();
</script>
<script src='https://code.jquery.com/jquery-2.1.4.js'></script>
<script>
showTimespan();
</script>
</body>
</html>