为什么我的TTI优化措施对首屏时间没改善?
我在做TTI优化时,尝试给图片加了loading="lazy",还把业务代码拆成动态import,但Lighthouse测出来的Time-to-Interactive还是12秒以上,这正常吗?
代码结构大概是这样:
// App.js
import('./components/Header').then(Header => {
ReactDOM.render(<Header.default />, document.getElementById('header'));
});
// 在HTML里这样写图片
<img src="large.jpg" loading="lazy" width="800" height="600">
测了网络请求发现动态导入的代码包确实在首屏后才加载,但主线程还是有很长的蓝色区块。是不是还有其他隐藏的阻塞点没注意到?
第一点,也是最容易被忽略的,就是第三方脚本的影响。你提到主线程有很长的蓝色区块,大概率是某些同步脚本或者耗时任务阻塞了主线程。检查一下是不是引入了像统计、埋点、广告之类的第三方脚本,尤其是那些直接写在HTML里的