首屏加载优化
懒加载、预加载、SSR、代码拆分、资源压缩、CDN 等优化方案
问题
如何优化首屏加载速度?常见方案有哪些?
解答
1. 懒加载(Lazy Loading)
延迟加载非首屏资源,减少初始请求。
// 图片懒加载 - 使用 Intersection Observer
const lazyImages = document.querySelectorAll('img[data-src]');
const imageObserver = new IntersectionObserver((entries) => {
entries.forEach((entry) => {
if (entry.isIntersecting) {
const img = entry.target;
img.src = img.dataset.src; // 替换真实图片地址
imageObserver.unobserve(img); // 加载后停止观察
}
});
});
lazyImages.forEach((img) => imageObserver.observe(img));
<!-- HTML 原生懒加载 -->
<img src="placeholder.jpg" data-src="real-image.jpg" loading="lazy" />
// React 组 目录