写点什么

前端性能优化实战(二)

用户头像
Augus
关注
发布于: 刚刚
前端性能优化实战(二)

渲染优化

  • 禁⽌使⽤ iframe (阻塞⽗⽂档 onload 事件)

  • iframe 会阻塞主⻚⾯的 Onload 事件

  • 搜索引擎的检索程序⽆法解读这种⻚⾯,不利于 SEO

  • iframe 和主⻚⾯共享连接池,⽽浏览器对相同域的连接有限制,所以会影响⻚⾯的并 ⾏加载

  • 使⽤ iframe 之前需要考虑这两个缺点。如果需要使⽤ iframe ,最好是通过 javascript

  • 动态给 iframe 添加 src 属性值,这样可以绕开以上两个问题

  • 禁⽌使⽤ gif 图⽚实现 loading 效果(降低 CPU 消耗,提升渲染性能)

  • 使⽤ CSS3 代码代替 JS 动画(尽可能避免重绘重排以及回流)

  • 对于⼀些⼩图标,可以使⽤base64 位编码,以减少⽹络请求。但不建议⼤图使⽤,⽐较耗 费 CPU

  • ⼩图标优势在于

  • 减少 HTTP 请求

  • 避免⽂件跨域

  • 修改及时⽣效

  • ⻚⾯头部的 会阻塞⻚⾯;(因为 Renderer 进程中 JS 线程和渲染线程是互斥的)

  • ⻚⾯中空的 href 和 src 会阻塞⻚⾯其他资源的加载 (阻塞下载进程)

  • ⽹⻚ gzip , CDN 托管, data 缓存 ,图⽚服务器

  • 前端模板 JS+数据,减少由于 HTML 标签导致的带宽浪费,前端⽤变量保存 AJAX 请求结 果,每次操作本地变量,不⽤请求,减少请求次数

  • ⽤ innerHTML 代替 DOM 操作,减少 DOM 操作次数,优化 javascript 性能

  • 当需要设置的样式很多时设置 className ⽽不是直接操作 style

  • 少⽤全局变量、缓存 DOM 节点查找的结果。减少 IO 读取操作

  • 图⽚预加载,将样式表放在顶部,将脚本放在底部 加上时间戳

  • 对普通的⽹站有⼀个统⼀的思路,就是尽量向前端优化、减少数据库操作、减少磁盘 IO

meta viewport 相关优化

针对大量图片的优化

  • 图⽚懒加载,在⻚⾯上的未可视区域可以添加⼀个滚动事件,判断图⽚位置与浏览器顶端 的距离与⻚⾯的距离,如果前者⼩于后者,优先加载。

  • 如果为幻灯⽚、相册等,可以使⽤图⽚预加载技术,将当前展示图⽚的前⼀张和后⼀张优 先下载。

  • 如果图⽚为 css 图⽚,可以使⽤ CSSsprite , SVGsprite , Iconfont 、 Base64 等技 术。

  • 如果图⽚过⼤,可以使⽤特殊编码的图⽚,加载时会先加载⼀张压缩的特别厉害的缩略 图,以提⾼⽤户体验。

  • 如果图⽚展示区域⼩于图⽚的真实⼤⼩,则因在服务器端根据业务需要先⾏进⾏图⽚压 缩,图⽚压缩后⼤⼩与展示⼀致。


今天先总结到这里,我们下期再见。


End~~~

用户头像

Augus

关注

爱瞎搞的软件开发工程师 2021.06.10 加入

某摸鱼集团

评论

发布
暂无评论
前端性能优化实战(二)