使用media属性将link标签的media设为print可异步加载CSS,再通过onload事件切换为all使其生效;2. 通过JavaScript动态创建link标签插入head中实现非阻塞加载;3. 利用rel=preload预加载样式资源,在onload时改为stylesheet以控制应用时机。核心是绕过CSS默认阻塞渲染的机制,确保关键样式同步加载以避免FOUC。
通过 <link>
标签异步加载样式,主要是为了避免阻塞页面渲染。CSS 默认会阻塞渲染,但可以通过一些技巧实现异步加载。
将 media
设置为一个暂时不匹配的条件,可以让浏览器异步下载 CSS 文件而不阻塞渲染:
说明:初始设置 media="print"
让浏览器异步加载,等文件加载完成后通过 onload
将其切换为 all
或 screen
,使其生效。
通过 JavaScript 动态插入 <link>
标签,也能实现异步加载:
立即学习“前端免费学习笔记(深入)”;
<script>这种方式默认是非阻塞的,资源会在后台加载,不会影响页面首次渲染。
结合 rel="preload"
预加载资源,并在加载完成后应用:
这样浏览器会优先下载该文件,但不会立即应用,直到 onload
触发并改为 stylesheet
时才生效。
基本上就这些方法。核心思路是绕过浏览器默认的渲染阻塞行为,用脚本或 media 控制加载时机。注意确保关键样式仍同步加载,避免出现 FOUC(无样式内容闪烁)。
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号