一、 浏览器渲染原理:

1.输入网址 -> dns查询 -> dns缓存 -> 三次握手建立连接 -> 浏览器发送请求到服务器 -> 服务器返回html -> 浏览器渲染页面;

2.​浏览器渲染过程(webkit为例):

① 首先进行dom解析,css解析,构建dom树;(display:none的元素在dom树)

② css解析完成css rules加到dom树上,生成render tree(回流reflow阶段,应尽量避免);(display:none的元素不在dom树)

③ 经过层叠上下文处理,生成render layer(重绘repaint阶段),可以直接去paint页面,或者去④;

④ 层合并后生成graphics layer,然后GPU绘制。

二、 浏览器宿主环境层面:

1.由于单线程解析阻塞限制,可以用script defer属性异步加载,样式放头部,脚本放底部;

2.结合dns-prefetch、dns-preload、preload预加载资源;

3.利用事件冒泡机制,采用事件委托方法绑定事件;

4.浏览器渲染时,开启硬件加速可以生成复合层,复合层交给GPU渲染,但不能滥用;

三、 网络层面:

1.减少http请求数量:css、js合并,css sprites,font-icon,base64编码图片,图片懒加载;

2.减轻http数据请求大小:静态资源压缩,tinypng压缩图片,webp格式,gzip压缩;

3.对于cookie性能bug,静态资源分开部署,cdn缓存;

4.缓存处理(强缓存,协商缓存),本地缓存;

5.dns-prefetch,preload;

6.反向代理,cdn,负载均衡;

做为一名前端程序员,有一个学习的氛围跟一个交流圈子特别重要。这是我的一个前端学习交流群 330336289(邀请码:寂静),想学习交流前端,打算深入了解这个行业的朋友,不管你是小白还是大牛都欢迎加入,大家一起交流学习。

四、 代码层面:

1.利用requestAnimationFrame做持续动画;

2.缓存dom,优化循环体;

3.减少重绘,回流,样式层面进行层提升;

4.闭包使用,内存回收;

5.代码复用;

6.递归时采用尾调用自身即尾递归,永远不会发生栈溢出;

7.硬件加速时添加z-index,人为干扰复合层的排序,有效减少chrome创建不必要的复合层。

转载于:https://juejin.im/post/5aeb06d951882567244dd474

新手推荐,前端性能优化小整理,效率加倍相关推荐

  1. 推荐前端性能优化辅助工具Google LightHouse (灯塔)

    Lighthouse的架构 Lighthouse的使用 通过npm安装lighthouse npm install -g lighthouse 使用lighthouse lighthouse --vi ...

  2. 前端性能优化之利用 Chrome Dev Tools 进行页面性能分析

    背景 我们经常使用 Chrome Dev Tools 来开发调试,但是很少知道怎么利用它来分析页面性能,这篇文章,我将详细说明怎样利用 Chrome Dev Tools 进行页面性能分析及性能报告数据 ...

  3. 前端性能优化,之还在为多种多样的知识点整理苦恼吗,进来看看吧。(转载)

    通过观看周啸天公开课--深度刨析前端性能优化CRP对百度到的各种杂七杂八的前端性能优化方面的问题进行梳理 先来说一下,前端页面的请求过程有如下几个步骤:(脑子里想一下这个过程哈) 步骤1:对输入地址栏 ...

  4. 前端性能优化,之还在为多种多样的知识点整理苦恼吗,进来看看吧。

    通过观看周啸天公开课--深度刨析前端性能优化CRP对百度到的各种杂七杂八的前端性能优化方面的问题进行梳理 先来说一下,前端页面的请求过程有如下几个步骤:(脑子里想一下这个过程哈) 步骤1:对输入地址栏 ...

  5. 超实用web前端开发工具推荐(web开发+前端性能优化+浏览器兼容性测试+……)

    要说有哪些好用的前端开发软件和工具,我可有发言权哈~因为在学习的过程中积累了不少实用型前端开发工具.今天我就从浏览器兼容性测试工具.web开发工具.前端性能优化工具.大数据可视化工具这四个方向来和大家 ...

  6. 1.5W+字的全链路前端性能优化送给你

    点击上方"前端开发博客",选择"星标" 回复"加群",加入我们一起学习 通常来讲前端性能优化是指从用户开始访问我们的网站到整个页面完整的展现 ...

  7. 如何全链路进行前端性能优化

    " 如果对性能优化很有兴趣的可以参加文末的送书活动 " 1. 概述 通常来讲前端性能优化是指从用户开始访问我们的网站到整个页面完整的展现出来的过程中,通过各种优化策略和优化方法让页 ...

  8. 全链路前端性能优化方案

    通常来讲前端性能优化是指从用户开始访问我们的网站到整个页面完整的展现出来的过程中,通过各种优化策略和优化方法让页面加载的更快,让用户的操作响应更及时,给用户更好的使用体验. 这里我们介绍的是前端性能优 ...

  9. 【干货】1.5W+字的全链路前端性能优化送给你

    通常来讲前端性能优化是指从用户开始访问我们的网站到整个页面完整的展现出来的过程中,通过各种优化策略和优化方法让页面加载的更快,让用户的操作响应更及时,给用户更好的使用体验. 这里我们介绍的是前端性能优 ...

最新文章

  1. linux ftp非隔离模式,FTP实验报告非隔离用户的使用教案.doc
  2. (转到C区)[献给想深入学习网络编程的朋友] C,C++网络编程学习简明指南
  3. SSL 的 java 实现
  4. 重载和重写以及重写的权限问题
  5. mybatis 打印SQL语句
  6. NHibernate第一个实例
  7. 我的Java之路(7)
  8. 多数人只有一种工资收入,想赚更多钱,只有去做副业
  9. 机器人也开始怕疼了?科学家开发无需人工干预即可自愈的机器人
  10. HDOJ--1879--继续畅通工程
  11. Atitit usrQBM1603短信验证码规范
  12. php开发pdf,使用PHP编写PDF(PDFLib)
  13. ubantu 防火墙
  14. java笔记 方法_Java笔记-方法
  15. 快速删除word书签
  16. 【技术整合】各技术解决方案与对应解决的问题
  17. 如何培养自己的幽默感
  18. 基于IjkPlayer的视频播放器
  19. 【华为机试真题详解】高矮个子排队
  20. 在微软Win10系统下安装SQL Server 2005时提示无法启动服务

热门文章

  1. 正则表达式元字符整理
  2. as3.0-----计时器的使用实例
  3. Android开发小知识点(二)
  4. T4 Template Overview
  5. 火狐SEO插件:查询网站收录与外链的火狐油猴脚本工具
  6. 基于区域的OSPF简单口令认证(cisco packet tracer5.3)
  7. 计算bom的准确用量
  8. 通过 yar 初识RPC
  9. 用ACL构建防火墙体系
  10. c#利用反射+特性实现简单的实体映射数据库操作类实现自动增删改查(一)