Z-Blog 主题性能优化:CSS 和 JS 加载顺序怎么排

· zblog · 阅读 16
摘要

主题慢,多半不是 PHP 慢,是资源加载排错了。CSS 在 head,JS 在底部这是最基础的规则,也是最常被破的。CSS 放 head 让浏览器尽早知道页面长什么样,避免无样式闪烁。JS 放 body 结尾,避免阻塞渲染。脚本没用完的 D

主题慢,多半不是 PHP 慢,是资源加载排错了。

CSS 在 head,JS 在底部

这是最基础的规则,也是最常被破的。

CSS 放 head 让浏览器尽早知道页面长什么样,避免无样式闪烁。

JS 放 body 结尾,避免阻塞渲染。脚本没用完的 DOM 之前,页面不该等它。

但 head 里的 CSS 不能太多

每个 css 文件都是一个额外请求。主题里挂了七八个 css,串行下载,首屏就慢。

开发时拆开写,上线前合并。Z-Blog 主题一般会在 include 里统一输出,合并这一步放那里做。

JS 加 defer

必须放 head 的脚本,加 defer。下载并行,执行等 DOM 解析完。

别用 async。async 执行时机不确定,依赖顺序的脚本会出错。

jQuery 这类被别的脚本依赖的库,一定用 defer,不能 async。

字体文件最坑

引外部字体,首次访问要下载几百 KB,还会因为字体没到而用系统字体显示,然后突然切换。

能用系统字体栈就别引。中文站点尤其如此,一个中文字体包动辄几 MB。

图片之外看这三个数

首字节时间、最大内容绘制、布局偏移。

开发者工具里都有现成面板。别凭感觉说快了还是慢了,看数。

改完怎么验

清缓存,关掉开发者工具的缓存选项,重新加载。

看网络面板里请求数。主题做到 20 个以内算正常。

超过 40 个,先合并再说别的。