1 html css loading render-blocking
我有九个不同的CSS文件.在浏览器下载所有CSS文件之前,我的网站不会加载.大多数CSS甚至不需要主页.在JavaScript中你可以这样做<script async>,
但对于样式表,最佳解决方案是什么?
我搜索了以下文章 Code Pen
他们建议使用
<link rel="stylesheet" href="css.css" media="none" onload="if(media!='all')media='all'">
Run Code Online (Sandbox Code Playgroud)
要么
<head>
<!-- head content -->
<link rel="stylesheet" href="style.css" media="bogus">
</head>
<body>
<!-- body content -->
<link rel="stylesheet" href="style.css">
</body>
Run Code Online (Sandbox Code Playgroud)
默认情况下,CSS被视为渲染阻止资源,这意味着在构造CSSOM之前,浏览器不会渲染任何已处理的内容.确保您的CSS保持精简,尽快交付,并使用媒体类型和查询来解锁渲染.
- Google Developers
CSS是一种渲染阻止资源.尽快并尽快将其发送给客户,以优化首次渲染的时间.
但是,如果我们有一些仅在某些条件下使用的CSS样式,例如,在打印页面或将其投影到大型显示器上时会怎么样?如果我们不必阻止对这些资源的渲染,那将是很好的.
CSS"媒体类型"和"媒体查询"允许我们解决这些用例:
<link href="style.css" rel="stylesheet">
<link href="print.css" rel="stylesheet" media="print">
<link href="other.css" rel="stylesheet" media="(min-width: 40em)">
Run Code Online (Sandbox Code Playgroud)
通过使用媒体查询,我们可以根据特定用例(例如显示与打印)以及动态条件(如屏幕方向的更改,调整大小事件等)来定制演示文稿.声明样式表资产时,请密切关注媒体类型和查询; 它们极大地影响了关键渲染路径性能
让我们考虑一些动手实例:
<link href="style.css" rel="stylesheet">
<link href="style.css" rel="stylesheet" media="all">
<link href="portrait.css" rel="stylesheet" media="orientation:portrait">
<link href="print.css" rel="stylesheet" media="print">
Run Code Online (Sandbox Code Playgroud)
来源 - 渲染阻止CSS -
| 归档时间: |
|
| 查看次数: |
6029 次 |
| 最近记录: |