前端性能优化术语

技术类

1.首屏时间(加载到第一屏的功能点,所消耗的时间)
2.白屏时间(从进入页面到head解析的时间)
3.可操时间(与模块相关,主要是测试核心模块的使用率,以及用户感知)
3.连通率(多为视频站点。时间为纵轴,主要是对应时间用户看到的视频或者听到声音的比例)

产品类

1.PV(page view),页面浏览量或点击量,衡量用户访问量。包括页面刷新次数,每一次刷新,算一次PV流量.
2.UV(unique visitor),独立访客数,某个网页不同用户的访问数。可以通过session来统计。
3.day,日活跃用户数量(Google Analytics)
4.MAU,月活跃用户人数
5.跳出率,跳出时间留下来的人/pv
6.IP,独立IP的访问用户。

PV看量,UV看人,IP看设备。

转载于:https://www.cnblogs.com/mengff/p/6985353.html

<think>嗯,用户问前端性能优化有哪些方法,我得好好整理一下。先,前端性能优化涉及很多方面,可能需要分步骤来讲解。先从常见的优化点开始,比如资源加载、代码优化、渲染性能等等。 资源压缩和合并应该是一个重点,比如CSS和JS文件的压缩,合并可以减少HTTP请求次数。还有图片优化,使用WebP格式,或者懒加载技术。缓存策略也很重要,比如利用浏览器缓存,设置合适的Cache-Control和ETag。 然后是代码层面的优化,比如减少重排和重绘,避免频繁操作DOM。使用防抖和节流来控制事件触发的频率。还有异步加载脚本,使用defer或async属性,或者按需加载模块。 接下来是渲染优化,比如使用CSS3动画代替JavaScript动画,开启GPU加速,合理使用will-change属性。还有服务端渲染或预渲染,提升加载速度。 网络方面,CDN加速可以加快资源加载,使用HTTP/2协议的多路复用特性。还有预加载和预连接,比如用preload和prefetch来提前获取关键资源。 可能还要提到性能监控工具,比如Lighthouse、WebPageTest等,帮助分析性能瓶颈。然后是一些具体的实践,比如代码分割、Tree Shaking、骨架等。 需要注意用户可能对某些术语不太熟悉,解释时要简明易懂。还要确保覆盖主要方面,结构清晰,分点说明。可能遗漏了某些细节,比如减少第三方库的依赖,或者使用Web Workers处理耗时任务。这些也需要补充进去。 最后总结一下,强调综合运用各种方法,根据实际场景选择合适策略,持续监控和优化。这样用户就能有一个全面的了解了。</think>### 前端性能优化方法分步解析 --- #### 一、**资源加载优化** 1. **压缩与合并文件** - **CSS/JS 压缩**:使用工具(如Webpack、Terser)删除注释、空格,缩短变量名,生成 `.min.js` 或 `.min.css`。 - **文件合并**:减少 HTTP 请求次数,例如将多个小图标合并为雪碧图(CSS Sprite)。 - **示例**: $$ \text{原始请求数} = 10 \xrightarrow{\text{合并}} \text{请求数} = 2 $$ 2. **图片优化** - 使用 **WebP** 格式替代 JPEG/PNG(体积减少 30%+)。 - **懒加载**:仅加载可视区域内的图片,通过 `loading="lazy"` 或 Intersection Observer API 实现。 - **响应式图片**:通过 `<picture>` 和 `srcset` 适配不同分辨率设备。 3. **缓存策略** - **强缓存**:设置 `Cache-Control: max-age=31536000`(1年)。 - **协商缓存**:利用 `ETag` 或 `Last-Modified` 验证资源是否更新。 --- #### 二、**代码执行优化** 1. **减少 DOM 操作** - 避免频繁修改 DOM,可使用 `DocumentFragment` 批量操作。 - **示例**: ```javascript const fragment = document.createDocumentFragment(); for (let i = 0; i < 100; i++) { const div = document.createElement('div'); fragment.appendChild(div); } document.body.appendChild(fragment); ``` 2. **防抖(Debounce)与节流(Throttle)** - **防抖**:连续触发事件时,只在最后一次执行(如搜索框输入)。 - **节流**:固定时间间隔内只执行一次(如滚动事件)。 3. **异步加载与按需加载** - **`async` 与 `defer`**:异步加载脚本,避免阻塞渲染。 - **动态导入(Dynamic Import)**:通过 `import()` 实现代码分割。 ```javascript button.onclick = async () => { const module = await import('./module.js'); module.run(); }; ``` --- #### 三、**渲染性能优化** 1. **避免布局抖动(Layout Thrashing)** - 集中读取 DOM 属性,再统一修改,减少强制同步布局。 - **错误示例**: ```javascript for (let i = 0; i < 100; i++) { el.style.width = el.offsetWidth + 1 + 'px'; // 触发重排 } ``` 2. **CSS 优化** - 使用 `transform` 和 `opacity` 触发 GPU 加速(合成层渲染)。 - 避免过深的 CSS 选择器层级,例如: ```css /* 不推荐 */ div > ul > li > a { ... } /* 推荐 */ .link { ... } ``` 3. **服务端渲染(SSR)与静态生成** - 使用 Next.js/Nuxt.js 提升加载速度,减少客户端渲染压力。 --- #### 四、**网络层优化** 1. **CDN 加速** - 将静态资源分发到全球节点,缩短用户访问距离。 2. **HTTP/2 与多路复用** - 通过单一 TCP 连接并行传输多个请求,解决队头阻塞问题。 3. **预加载关键资源** - 使用 `<link rel="preload">` 提前加载字体、核心 CSS/JS。 - **示例**: ```html <link rel="preload" href="font.woff2" as="font" crossorigin> ``` --- #### 五、**工具与监控** 1. **性能分析工具** - **Lighthouse**:生成性能评分及优化建议。 - **Chrome DevTools**:通过 Performance 面板分析运行时性能。 2. **持续监控** - 使用 **Web Vitals** 指标(LCP、FID、CLS)跟踪真实用户体验。 --- ### 总结 优化需结合实际场景,例如: - **移动端**:优先优化加载和内存占用。 - **电商网站**:侧重图片懒加载与 CDN 加速。 - **后台系统**:减少长列表渲染压力(虚拟滚动)。 通过工具量化性能瓶颈,逐步优化关键路径,最终实现流畅的用户体验。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值