在工作中我们分析的第一个性能优化的探讨点:DNS解析
关于DNS解析,前端可做的策略不是非常多,我们先来看下DNS的过程及影响。
在浏览器的url访问开始,浏览器从第三方服务器请求资源时,我们必须先将该跨域的域名解析为IP地址,也就是查询电话本的意思,浏览器才会发出请求,此过程为DNS解析,耗费时间约20-120秒,现在浏览器对DNS进行的优化,进行了缓存,那还有什么手段能减少和加速dns的查找呢?
1、使用快速 DNS提供商
2、更改TTL值以利用DNS缓存:TTL是DNS缓存的生命周期时间,TTL越高,浏览器执行另一次的DNS查找的可能性就越小。常用TTL值有5分钟,30分钟,1小时,12小时,24小时
3、减少域名数量即减少DNS的请求次数:减少站点上DNS查找的最简单方法是简单的删除查询不同主机名的请求,DNS查找与请求数量无关,而是与域名的数量有关
4、在CDN上移动和托管资源 将尽可能多的资源转移到CDN提供商,减少涉及的DNS查找次数,从而减少了加载时间,比如我们团队做的图片和字体都通过相同的域名进行获取,从而减少多种dns的解析时间
5、DNS预解析,我们可以通过 等
6、推迟js的加载,虽然这并不会减少dns的查找次数,但会阻止立即调用,从而加快用户体验,
7、利用aname记录和cname flatten 使用DNS记录为您提供cname记录的功能,但在根级别,例如,假设您为www.baidu.com 配置了cname,www必须解析为主机名,然后解析为IP地址,这需要两个请求,这需要另个请求,如果使用记录,可以跳过其中一个的请求之一,也可以与 CDN结合使用
DNS通常是那些被忽视的性能因素之一,但一旦发生了问题,会占整个加载时间的很大一部分。了解DNS的工作原理很重要,那里有越来越快的提供商,以及如何减少查找以加快站点速度。