【发布时间】:2018-06-06 04:20:38
【问题描述】:
我想这已经被问过一次又一次,但我没有看到我正在寻找的答案。
我正在使用 HTML 文件和 CSS 文件进行一些简单的测试,试图阻止页面呈现阻塞 CSS,通过页面洞察 (google) 运行网站
现在我看到了这样的答案:
<link rel="stylesheet" href="style.20180530.css?ver=1.0" media="none" onload="if(media!='all')media='all'">
我看到过这样的答案:
<link href="https://fonts.googleapis.com/css?family=Roboto:300,700" rel="preload" onload="this.rel='stylesheet';this.removeAttribute('onload');" as="style">
这两个我都很好,对于谷歌字体!但是对于页面的主要样式来说,我认为看到一个没有样式的页面然后突然加载它们并不是一个好的用户体验。
显然,您可以通过将全部内容作为内联样式来消除 CSS 的任何阻塞,但我再次认为这不是一个好习惯,您将所有样式输出到 HTML 页面,而不是通过样式表加载它们.
我已经看到网站实际上会像这样加载样式:
<link rel='stylesheet' id='main-css' href='./style.2018052108.css?ver=4.9' type='text/css' media='all' />
Heres一个链接到页面洞察速度测试上。我知道该网站正在运行 wordpress。如果您查看页面源代码,它使用的和我上面使用的完全相同。
而且它们根本没有渲染阻塞...... 如何?
我在 https 我正在使用 cloudflare,我的样式表被压缩并且只有 24bytes 左右,而且我仍然遇到渲染阻塞。
- 为什么?
- 如何避免?
【问题讨论】:
-
您总是会遇到渲染阻塞,但这根本不是问题……这些只是简单的建议,您永远无法遵循所有这些建议。而且你永远不会获得 100% 的分数.. 你需要关注页面速度/加载
标签: css styles rendering google-pagespeed render-blocking