性能优化其他

149 阅读1分钟

1.dns预解析:提前异步解析需要加载的跨域资源,不影响后续资源的加载;

代码:`<link rel=“dns-prefetch” href=“//[xxx.com](http://xxx.com)”>`

注意:

1. 仅对跨域上的DNS查找有效,对当前域名解析无意义;
2. 慎用,多页面重复与解析;
3. 更多的DNS解析优化:
4. 如果不是资源常变的情况,可以延长DNS缓存时间;
5. 尽可能使用A或AAAA记录代替CNAME;
6. 使用CDN加速域名:静态资源就近获取;
7. 自己搭建DNS服务;

3.HTTP:

HTTP1.1: 
1.请求头是文本流,请求体可以是文本流或者是二进制;
2.并发请求,按序响应,队头会阻塞;

HTTP2.0: 
1.请求头请求体均为二进制;
2.请求和响应均为并发式;

4.强制缓存:

    1. no-cache:强制(开启)进行协商缓存;

    no-store:不使用缓存;

    2. cache-control: public/private;

  public: 浏览器和代理服务器均可做缓存;

  private: 只能被浏览器缓存;

  未指定,默认为private

5.协商缓存:

1. last-midefied设置协商缓存资源的修改时间,记得同时设置请求头cache-control:none-cache;
缺点:由于对比时间是秒为单位,如果修改资源在1秒内完成则会导致对比出错,识别不出;

2.etag:文件指纹,基于文件是否修改生成对应字符串标签。
缺点:服务器生成etag需要额外的开销;

6.CDN:内容分发网络,常用于静态资源的缓存;