性能优化

302 阅读2分钟

嘛是性能?

从网站开始生成,到代码运行,消耗的浏览器和服务器资源,所需要的一些资源,统称性能

为啥子要性能优化?

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:精灵图啊什么的之类的