本地缓存
强缓存是指浏览器在加载资源时,根据请求头的expires和cache-control判断是否命中客户端缓存,如果命中直接从缓存中读取资源,不会发请求道服务器,反之需要做完整的资源请求逻辑
协商缓存是指浏览器会先发送一个请求到服务器,通过last-modified和etag验证资源是否命中客户端缓存,如果命中,服务器会将这个请求返回,但不会返回请求的资源数据,依然是从缓存中读取资源,如果没有命中,无论是资源过期或者没有相关资源,都需要向服务器发起请求,等待服务器返回这个资源
DNS查询
DNS之所以会成为前端性能瓶颈点,是因为每进行一次DNS查询,都要经历从手机到移动信号塔,再到认证DNS服务器的过程。节省时间的办法就是让DNS的查询走缓存,幸好浏览器提供了DNS预获取的接口,我们可以在打开浏览器作者WebView的同时就进行配置
HTTP请求
最大的瓶颈点来源于请求阻塞
请求阻塞就是浏览器为保证访问速度,会默认对同一域下的资源保持一定的连接数,请求过多就会进行阻塞。浏览器同域名的连接数是限制是多少呢?一般是6个,如果当前请求数多于6个,只能6个并发,其余的得等最先返回的请求后,才能做下一次请求。所以做一些域名规划很重要
服务端数据处理阶段的瓶颈点
Gzip压缩是一种压缩技术
通过Gzip压缩
资源的下载速度会快很多
能大大提升页面的展示速度
数据缓存
借助service Worker的数据接口缓存
借助本地存储的接口缓存
CDN
service Worker是浏览器的一个高级属性,本质上是一个请求代理层,它存在的目的就是拦截和处理网络数据请求
借助本地存储的接口缓存是指在一些对数据时效性要求不高的页面,第一次请求到数据后,程序将数据存储到本地存储,下一次请求的时候,先去缓存里面取数据,如果没有的话,再向服务器发起请求。
CDN的基本思路是通过在网络各处放置节点服务器构造一个智能虚拟网络,将用户的请求导向离用户最近的服务节点上
页面重定向
重定向是指网站资源迁移到其他位置后,用户访问站点时,程序自动将用户请求从一个页面转移到另外一个页面的过程
mutationsObserver