熬了一宿,将手机端的性能得分从56整到了90,主要是做了:
1、将整个项目的图片用nextjs的Image组件来优化,hero图加priority、fetchPriority="high"。
所有图片放在Cloudflare的R2上,用脚本一键切16种不同尺寸的断点图,每个Image根据布局样式来计算出对应的sizes,sizes算得挺蛋疼。
比如:sizes="(max-width: 672px) calc(100vw - 32px), (max-width: 1024px) 640px, (max-width: 1280px) calc((100vw - 64px - 80px)*0.4), 454px"。
2、无关js延迟加载。