外部阻止脚本强制浏览器等待,然后才能呈现页面?

时间:2017-11-01 20:36:40

标签: javascript html rendering blocking google-contacts

请参阅:https://developers.google.com/speed/docs/insights/BlockingJS

他们说:

  

外部阻止脚本强制浏览器等待获取JavaScript,这可能会在呈现页面之前添加一个或多个网络往返。

为什么Google会这样说?这让人很困惑。实际上他们说:

  

外部阻止脚本强制浏览器在呈现页面之前等待。

他们不是说:

  

外部阻止脚本强制浏览器在呈现页面的A(特定)部分之前等待。

我们来看这个例子:

INDEX.HTML

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8" />
        <title>Test</title>
    </head>
    <body>
        Line 1<br />

        <script>
            alert('I could also put here for example some more html.');
        </script>

        Line 2<br />

        <script src="script.js"></script>

        Now the HTML parser is almost done!<br />
    </body>
</html>

的script.js

// Synchronous delay of 30 seconds
var timeWhile = new Date().getTime(); 
while( new Date().getTime() - timeWhile < 30000 );

这是测试:https://external-blocking-scripts-2.glitch.me/

结果是,在获取“外部阻止脚本”之前,浏览器正在显示(呈现)内容。

那么为什么谷歌这样说呢?在我看来,“页面”与“页面的一部分”完全不同。如果他们看到这样的话,人们会在“页面速度”方面做出错误的决定。我发布这个,因为在过去我也是其中之一。我仍然看到周围的混乱。

0 个答案:

没有答案