前端优化:[dns-prefetch] DNS预解析

目录

背景

  对提升网页性能,提高加载速度和用户体验的不断重视。


定义与优势

  DNS Prefetch,即DNS预获取,是前端优化的一部分。当你浏览网页时,浏览器会在加载网页时对网页中的域名进行解析缓存,这样在你单击当前网页中的连接时就无需进行 DNS 的解析,减少用户等待时间,提高用户体验。一般来说,在前端优化中与 DNS 有关的有两点:

  • 减少DNS的请求次数
  • 进行DNS预获取

现在大多数新浏览器已经针对DNS解析进行了优化,典型的一次DNS解析需要耗费20-120毫秒,减少DNS解析时间和次数是个很好的优化方式。DNS Prefetching 是让具有此属性的域名不需要用户点击链接就在后台解析,而域名解析和内容载入是串行的网络操作,所以这个方式能 减少用户的等待时间,提升用户体验 。

默认情况下浏览器会对页面中和当前域名(正在浏览网页的域名)不在同一个域的域名进行预获取,并且缓存结果,这就是隐式的 DNS Prefetch。如果想对页面中没有出现的域进行预获取,那么就要使用显示的 DNS Prefetch 了。


实践

写法

  DNS Prefetch 应该尽量的放在html文档的前面。具体使用方法如下:

1
2
3
4
5
<meta http-equiv="x-dns-prefetch-control" content="on">
<link rel="dns-prefetch" href="xxxxx">
<link rel="dns-prefetch" href="xxxxx">
<link rel="dns-prefetch" href="xxxxx">
... ...

在Chrome中进行观察

  在Chrome浏览器地址栏输入”about:dns”可查看当前浏览器的预解析数据。
举例如下:
1.今日头条

2.Github

3.新浪微博

4.阿里云