美文网首页
Web 性能优化的常用手段

Web 性能优化的常用手段

作者: 小废柴JH | 来源:发表于2019-07-19 22:40 被阅读0次

web性能优化这个问题可以从输入网址到页面渲染的过程来讲。
分析问题的套路:分治法,把大的问题分成小的问题去逐个解决。

1. DNS查询:
减少DNS查询。 如果页面里面很两个网站的请求,如百度和mdn,那么就会有两次的DNS查询,那么就可以从DNS减少上面进行优化,应该把所有的资源放到一个网站,也就是尽量减少域名,就能做到DNS查询。
2.建立TCP连接:
(1)连接复用,在http里面写一个keep-alive就能开启连接复用。在http协议里面加入请求头keep-alive,那么服务器就会尽量会复用这个tcp连接,也就是说第一次建立之后,先不断开这个连接,下次连接的时候直接复用前面的连接就行了。
连接复用介绍: https://blog.51cto.com/gaibianziji/1211940
(2)若是使用了http的2.0版本,那么连接复用率会更高。因为在2.0版本存在多路复用的功能。

3.发生http请求:
http请求分为四部分,第一部分为请求行,不能优化。
(1)第二部分为请求头:可以减少cookie体积,每一个请求都会附带上cookie,因此想让请求体积尽量小,就可以把cookie的体积尽量减少,不要乱用cookie,这样就能优化请求体积。
(2)还有就是对缓存的处理使用cache-control,那么就可以做到不发生,在一段时间内就发不送请求,直接用本体的缓存文件,使用了cache-control就最大化的优化了请求的第四部分,也就是不发,直接用本地的缓存进行响应。
(3)同时发生多个请求(像css和js一样同时可以发生多个):一个域名可以同时发生四个(IE)或八个(chrome)请求,那么增加域名就可以增加发生请求的数量。

多域名也就是多个CDN和DNS解析里面的减少域名是否矛盾昵?
答:不是的,比如说css.cdn.com专门用来下载css和js.cdn.com专门来下载js,这样网站一进来就各有四个或八个的请求下载css和js,这样会很快。如何回答面试官:权衡,那么该如何权衡?如果文件很少,比说就三个文件,就一个css,一个html,一个js,这时候可以放在一个域名下面,这样DNS查询时间很少,因为在文件很少的情况下,增加域名没什么用,没有达到一个域名请求的上限。但是在文件很多的情况下,比如说有一个html,10个css,10个Js,如果全部放在一个域名下面,虽然DNS查询的时间很少,但是要排队,四个请求四个请求的请求,最终会请求四次,这样的话就不如增加DNS请求时间(增加域名),同时去请求四个css和四个js,这样的话只需请求两到三次,就可以很快的请求完,虽然DNS时间增加了,但是请求时间减少了。
CDN的全称是Content Delivery Network,即内容分发网络。一般使用CDN增加域名。
为什么使用CDN?
css和Js 的优化第一个选择就是使用cdn,第一个原因就是增大同时下载数量。CDN也可以减少cookie体积,因为不会在CDN上面去写cookie,cookie是放在主域名下的,因此CDN是全部没有cookie的,那么尽量用CDN请求静态资源,那么就达到减少请求的目的。
作用:(1)增加并发下载数(2)解除光速下载的限制,这样就可以把内容下载的尽量快,解决的距离的问题。
4. 接收响应:
(1)ETG(304),也就是服务器发现文件是最新的就不会发响应,只给发一个304。用ETG做一个304的响应,不用客户端再去下载整个文件,直接用上一次的。缓存是直接不发请求,ETG是发请求,但是响应的是304。
(2)用Gzip压缩,服务器用Gzip压缩html,css,js等任何格式,压缩打包后给浏览器,浏览器拿到这个包以后发现是压缩,就会打开。但是存在缺点,会耗费chrome的cpu,那么文件很小的情况下,就不要使用Gzip了,文件越大效果越大。
5.DOCTYOE:
不能写错,不能不写。不写的话浏览器就会去纠结一下,那么浏览器就会尝试用Html的方式预读一下,但是还有用xml去再读一下,浪费时间。
6.解析标签:
尽量减少标签的数量,少见div。
7.把css放到header里面,把js放到body最后。
因为不管是css还是Js都要阻塞,Js是一定阻塞,css在chrome会阻塞。
理论上是都放在后面,但是css有一个特点,在chrome是不下载完css,是不会渲染页面的,因此css放在前面和后面没什么区别。那么就干脆把css放在前面,这样还能提前下载。
JS为什么放后面?因为页面就算没有JS,页面也是能看的,要是把JS放前面,那么就要等JS下载完了才能去显示第一个标签,这样很慢。那么就不如让css和html在前面显示好了,用户在手放到鼠标前做好Js的下载,完美体验。因此把Js 放到后面是保证用户看到一个完整的页面,后面再去慢慢的加载js。这样做的好处就是(1)尽早显示页面(2)可以获取到节点,放在前面是获取不到的,因为Js没执行完,标签就不会出现在页面里面,也就拿不到标签了。
8.其它优化方案:
减少请求,合并文件,但是请求减少了,单个文件的下载量增加。
雪碧图基本过时了:就是把多个图拼成一个,显示的时候就显示局部。
9.讨巧方法:
(1)正常情况是把整个页面全下载下来,鸡贼方案就是,先加载第一屏,在用户看第一屏的时候再去慢慢的偷偷的加载第二屏以后的内容,甚至不滚动不加载,这个就叫做懒加载。设计一个定时器可以实现。因此想快速的提高页面的渲染速度,那就不渲染第二屏以及后面的内容,然后用js动态的加载。比如淘宝就是这么做的。
(2)还有一个鸡贼方案就是在页面的加载部分加一个loding动画,会让用户感觉页面加载变化了,其实没什么变化。

相关文章

  • Web 性能优化的常用手段

    ............................................................

  • Web 性能优化的常用手段

    使用CDN 使用内容分发网络(CDN):把网站内容分散到多个、处于不同地域位置的服务器上可以加快下载速度。 使用 ...

  • Web 性能优化的常用手段

    1.使用CDN 使用内容分发网络(CDN):把网站内容分散到多个、处于不同地域位置的服务器上可以加快下载速度。 2...

  • Web 性能优化的常用手段

    web性能优化这个问题可以从输入网址到页面渲染的过程来讲。分析问题的套路:分治法,把大的问题分成小的问题去逐个解决...

  • Web 性能优化的常用手段

    使用CDN使用内容分发网络(CDN):把网站内容分散到多个、处于不同地域位置的服务器上可以加快下载速度。 使用 C...

  • Web中的性能优化

    Web性能优化的常用手段 因为最近在学习前段的过程中,接触到了对应的前端web性能等相关领域的知识,为了更全面的了...

  • web常用性能优化

    1. 浏览器对同一个协议+域名组合都有并发请求数的限制, 大概8个左右, 可以申请多个域名增加并发请求数 2. 跨...

  • 彻底弄懂HTTP缓存机制及原理

    转载地址 前言 Http 缓存机制作为 web 性能优化的重要手段,对于从事 Web 开发的同学们来说,应该是知识...

  • 浏览器缓存机制小结

    原文地址:justrockit.top web性能优化措施中,合理设置浏览器缓存是重要的优化手段之一,它可以加快页...

  • JVM(五)深入了解性能优化

    影响系统性能的方方面面响应时间并发数吞吐量关系 常用的性能优化手段避免过早优化进行系统性能测试寻找系统瓶颈,分而治...

网友评论

      本文标题:Web 性能优化的常用手段

      本文链接:https://www.haomeiwen.com/subject/sacakctx.html