媒介
机能优化是每一个项目都须要注重的题目,在这里连系项目实际状况较为体系的整顿下
web前端机能优化简朴能够归纳综合为以下几点
1 削减须要加载资本的体积
1.1 按需加载
就是每一个页面之加载须要的内容,这一点在多页运用中平常都有注重,单页运用能够用webpack的import与vue的异步组件完成;react由于本人不熟,一定也有相应的解决方案
1.2 资本紧缩
在现在的webpack4+中,只要将mode设置为production,webpack就会将对应的资本(html、css、js)举行紧缩;gulp也有对应的模块(html-min,uglify)
1.3 懒加载
将首屏不须要展现内容做懒加载处置惩罚,在须要展现时(比方转动屏幕)再加载须要的内容
2 加快加载的速率
2.1 css精灵图
这是一种比较经常运用的手艺,就是jiang将页面须要展现的小图片图标集合到一整张图片中,经由历程background-position设置来展现,道理是由于浏览器对统一域名下的要求有并发个数限定(平常在4-10个)
2.2 cdn加快
cdn道理简朴来讲就是经由历程dns的负载平衡,将接见剖析到近来的服务器,该服务器初次会到目的服务器加载内容,同时会缓存该内容,今后该区域接见此资本的时刻就可以直接读取服务器上的缓存内容;从而块加载的速率;同时还能够打破浏览器的并发个数限定于服务器的带宽限定
3 http协定相干(须要对服务器软件举行相应设置)
3.1 缓存
3.1.1 Last-Modified(http1.0)与ETag(http1.1),浏览器会对相应头中有此两个字段的内容举行缓存,下次接见此资本的时刻会带上f-Modified-Since(与Last-Modified相对应)If-None-Match(与ETag相对应);服务器在识别到文件没有变化的时刻,会返回状况码304,同时也不会返回相应体;浏览器接收到服务器返回的内容后就会从缓存中读取相应内容;
关于为何会有两个字段,http1.0与http1.1各一个,由于http1.0中的商定会有服务器于客户端时候不一致的状况;下同
3.1.2 Expires(http1.0)与Cache-Control: max-age=86400(http1.1),此个字段与3.1.1相似,差别的是浏览器读到对应缓存后,假如没逾期,就不会要求服务器,直接运用缓存里的内容
3.1.3 keep-alive,与tcp协定的三次握手相干,有此字段将会坚持tcp链接,省去再次握手的历程;坚持的时候可经由历程服务器软件举行设置
3.1.4 Accept-Encoding,这个须要浏览器处置惩罚
4 浏览器相干
4.1 defer与async
由于script会壅塞浏览器对html的剖析,对与没有依靠关联的script加上defer或async
4.2 图片用背景图的情势展现
此要领是由于img标签会壅塞html的剖析
结语
机能优化认证道远,现在只想到这些,算是举一反三了,有没涉及到或许毛病的地方请大佬们不吝指正,感谢~~