嘛是性能?
从网站开始生成,到代码运行,消耗的浏览器和服务器资源,所需要的一些资源,统称性能
为啥子要性能优化?
1:行业绕不开的拦路虎
2:你面试官会问
3:你成为大佬必不可少的知识
如何优化性能?
1:浏览器缓存政策
--强缓存
---Cache -Control
-public表示响应可以被客户端和代理服务器缓存
-private表示响应只可以被客户端缓存
-max-age-30缓存30秒后过期,需要重新请求
-s-maxage-30覆盖max age, 作用一样,只在代理服务器中生效
-no-store不缓存任何响应
-no-cache资源被缓存,但是立即失效,下次会发起请求验证资源是否过期
-max-stale=30 30秒内,即使缓存过期,也使用该缓存
-min-fresh=30希望在30秒内获取最新的响应
---Expires(了解)
缓存过期时间,用来指定资源到期的时间,是服务器端的具体的时间点。也就是说,Expires-max-age +请求时间, 需要和Last-modified结合使用
Expires是Web服务器响应消息头字段,在响应http请求时 告诉浏览器在过期时间前浏览器可以直接从浏览器缓存取数据,而无需再次请求。
---强缓存的两个状态
from memory cachel:从内存中取资源的过程。浏览器刷新或重新打开后,没有这个过程
from disk cache:从硬盘读取缓存。此内存不会随着浏览器关闭而清除
--协商缓存
本地缓存会被忽略,会去请求服务器验证资源是否更新,如果没更新才继续使用本地缓存,此时返回的是 304,这就是协商缓存。 。协商缓存不生效http状态码200,走正常路径从服务器获取资源。
2:精炼代码
说到精炼代码,就不得不提算法,从算法上优化代码可从两个角度来说:时间复杂度,空间复杂度。 难搞哦,算法,嗯,只需要知道,在时间复杂度角度讲:能把O(2n),弄成O(n),就这样。就是优化了
3:静态资源加载
1:js,css,啊图片啊之类的压缩处理,万恶的webpack
2:CDN的全称是Content Delivery Network,即内容分发网络。 CDN是构建在现有网络基础之上的智能虚拟网络,依靠部署在各地的边缘服务器,通过中心平台的负载均衡、内容分发、调度等功能模块,使用户就近获取所需内容,降低网络拥塞,提高用户访问响应速度和命中率。 CDN的关键技术主要有内容存储和分发技术
3:精灵图啊什么的之类的