前端性能优化

基本问题

在这里插入图片描述
http层面的优化

  • DNS预解析:
    DNS实现域名到IP的映射。通过域名访问站点,每次请求都要做DNS解析。每次DNS解析在200ms以下,一般采用DNS Prefetch的一种DNS预解析技术,当浏览网页时,会在加载网页的过程中对域名进行解析缓存,这样在单击当前页面中的i链接时就无需进行DNS解析,减少用户等待时间,提高用户体验
 <LInk rel="dns-prefetch" href="www.baidu.com" />
 //只有部分浏览器支持
  • TCP连接
    采用http2,可以复用tcp通道,采用二进制格式而非文本格式,使用报头压缩,http2降低了开销,支持cache push
  • 浏览器并发
    基于端口跟线程切换开销,浏览器不可能无限的并发请求,chrom的并发是6,超过限制数目的请求就会被阻塞;
    对于某些静态资源,图片等等,我们对url分散处理,不同的资源域名
  • http请求次数
    减少http请求次数,将多个请求合并成同一个http的开销
  • webpack
    充分利用webpack提供给我们的能力,利用DllPlugins等插件,对代码进行优化,文件的分割和合并,公共代码的提取,长缓存等策略
  • http压缩
    采用Czip压缩:HTTP压缩就是缩小体积为目的,对http内容进行重新编码的过程,原理是找出一些重负出现的字符串,临时替换他们,从而让整个文件变小,文件中代码的重复率越高,那么压缩的效率越高
缓存
浏览器缓存

强缓存和协商缓存

https://blog.csdn.net/qq_44786519/article/details/108691437

在这里插入图片描述

CDN缓存

CDN缓存由网站管理员自己部署,为了让他们的网站更容易扩展并获取得更好的性能。通常情况下,浏览器先向CDN网关发起Web请求,网关服务器后面对应着一台或多台负载均衡服务器,会跟据他们的负载请求,动态将请求转发到合适的原服务器上。从浏览器角度来看,整个CDN就是一个源服务器,从这个层面来说,浏览器和服务器中间的缓存机制,在这种架构下仍然适用

应用缓存

Coolies:同一个域名下的所有请求,都会携带Cooike,大小4kb
Session Storage:用来存储生命周期和它同步的会话级别的信息,关闭浏览器就不存在。
Local Stoage:持续化缓存
Service Worker缓存:
pwa,会拦截http请求,对资源进行离线请求,消息推送,无法直接访问dom

浏览器渲染

浏览器渲染机制
  • DOM树:
    解析 HTML 以创建的是DOM树:渲染引擎开始解析HTML文档,转换树中的标签到DOM节点,它被称为内容树

  • CSSOM树:
    解析 CSS (包括外部CSS文件和样式元素)创建的是CSSOM树。CSSOM的解析过程与DOM的解析过程是并行的

  • 渲染树
    CSSOM与DOM结合之后我们得到的就是渲染树

  • 布局渲染树
    从跟节点递归调用,计算每一个元素的大小,位置等,给每个节点所应该出现在屏幕上的精确坐标,我们便得到了基于渲染树的布局渲染树(Layout of the render tree)。

  • 绘制渲染树:
    遍历渲染树,每个节目将使用UI后端层来绘制。整个过程叫做渲染树(Painting the render tree)。

阻塞
  • 普通模式,js会阻塞浏览器,浏览器必须等待 index.js 加载和执行完毕才能去做其他事情.一般会将此类js放在<body>标签的底部,减少对整个页面下载的影响.
  • async 模式:js不会阻塞浏览器做任何其他的事情.它的加载时异步的,当它加载结束,js脚本会立即执行.
  • defer模式:js的加载是异步的,执行是被推迟的.整个文档解析完成DOMContentLoaded事件即将被触发时,defer模式的js文件才会开始依次执行
    一般不参与dom操作会用异步,如果有dom操作会defer.
  • 动态加载脚本:
    此文件当元素添加到页面之后立刻开始下载.无论在何处启动下载,文件的下载个运行都不会阻塞其他页面处理过程.甚至可以将这些代码放在<head>部分而不会对其余部分的页面代码造成影响.
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值