Chrome 在 head 脚本完成之前显示正文

Chrome displays body before head scripts are finished

据我所知,浏览器应该在到达脚本时停止呈现 DOM,直到脚本完成。

但是,如果我写

window.open('Mypage.aspx?ID=0', '_top'); 

在 head 标签处,我仍然可以在新页面打开之前快速看到 'flicker'。 我什至试图在 body 标签之前人为地创建一个延迟,但无济于事。 我怎样才能避免闪烁?

示例:

<html>
<head>
<title>aa</title>
<script type="text/javascript">window.open('MyPage.aspx?ID=0', '_top');

 var now = new Date().getTime();
    while(new Date().getTime() < now + 3000){ /* force delay */ } 

</script></head><body style="background-color:red">
initial page
</body>

在 Chrome 中,您可以在脚本的第一行使用 window.stop();,这将停止 html 渲染。

尽管对我来说,在适当的时候用 css 类 到 hide/show 来管理它似乎更一致。