gpt4 book ai didi

css - 对于页面速度、缓存的全局 css 文件或在内部加载全局 css 哪个更好?

转载 作者:行者123 更新时间:2023-11-27 23:25:57 24 4
gpt4 key购买 nike

为了页面速度,我正在解决网站 css 的加载方式。最初该站点在每个页面上调用了几个 css 文件。我采用了标准方法,将所有 css 组合并缩小到一个文件中,利用浏览器缓存并使用 CDN。这提供了很大的改进。

我的下一步是将全局 css 与每页 css 分开,以避免加载任何未使用的 css。我最初的目标是在每个包含全局 css 规则的页面上调用一个缩小的 css 文件,并在 <head> 内部输出每页 css。页面的一部分。

全局 css 文件将可由浏览器缓存并可重复用于每个页面,但确实算作渲染阻塞 css 和一个额外的 http 请求。

页面速度在<head> 内部输出全局样式会更好吗?每个页面的部分以避免额外的 http 请求,即使它会牺牲全局样式作为可重用的浏览器缓存 css?

编辑:我正在使用 PHP 并缓存页面,所以这不是什么更容易开发的问题,这只是输出(HTML/CSS)性能的问题。

最佳答案

这很复杂......

在 head 中包含样式意味着它们不会被缓存,并且您传输的内容超出呈现页面所需的内容。此外,通过 <link> 导入的外部 CSS s 是流水线式的,这样您就不会在获取下一个之前等待一个完成。结果是,通常两张 100kb 的工作表会传输并且渲染速度确实比一个 200kb 的文件快。

当然,某些网络问题(如 DNS 速度慢)会影响结果,但通常情况下,在 CPU 未过载、带宽充足且 ping 时间短的情况下,管道会提高页面速度,尤其是在缓存了一个或多个管道的情况下。

将规则内嵌在 <head> 中还可以为 gzip 每页提供更多工作,与可以缩小一次并缓存的内容相比,这将降低带宽。

简而言之,它在某种程度上取决于用户、网络和代码,但如果没有配置错误或硬件损坏,使用全局导入应该比内联运输更快。

最后一点:如果您只需要少量 CSS,将其内联存储在头部会更快。例如,我发现 body { opacity: 0; transition: 500ms opacity;}在更多情况下可以帮助隐藏 FOUC 比外部表更好,因此对于此类 UX 优化,非常有必要使用一些 CSS 内联。

关于css - 对于页面速度、缓存的全局 css 文件或在内部加载全局 css 哪个更好?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38533001/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com