今天翻看taobao的网页源代码的时候看到了以下内容:
<link rel=”dns-prefetch” href=”//g.tbcdn.cn”>
<link rel=”dns-prefetch” href=”//gtms01.alicdn.com”>
<link rel=”dns-prefetch” href=”//img01.taobaocdn.com”>
<link rel=”dns-prefetch” href=”//img02.taobaocdn.com”>
<link rel=”dns-prefetch” href=”//img03.taobaocdn.com”>
<link rel=”dns-prefetch” href=”//img04.taobaocdn.com”>
<link rel=”dns-prefetch” href=”//log.mmstat.com”>
<link rel=”dns-prefetch” href=”//p.tanx.com”>
<link rel=”dns-prefetch” href=”//i.mmcdn.cn”>
<link rel=”dns-prefetch” href=”//delta.taobao.com”>
查阅了相关资料,知道DNS Prefetch也就是DNS预获取,也是前端优化的一部分。在前端优化中关于DNS的有两点:一是减少DNS的请求次数,第二个就是进行DNS预先获取。
DNS Prefetch 已经被下面的浏览器支持:
- Firefox: 3.5+
- Chrome: Supported
- Safari 5+
- Opera: Unknown
- IE: 9 (called “Pre-resolution” on blogs.msdn.com)
默认情况下浏览器会对页面中和当前域名(正在浏览网页的域名)不在同一个域的域名进行预获取,并且缓存结果,这就是隐式的DNS Prefetch。如果想对页面中没有出现的域进行预获取,那么就要使用显示的DNS Prefetch了,也就是使用link标签:
<link rel=”dns-prefetch” href=”http://help.ecdo.cc” />
DNS Prefetch应该尽量的放在网页的前面,推荐放在后面。
可以通过下面的标签禁止隐式的DNS Prefetch。
<meta http-equiv=”x-dns-prefetch-control” content=”off” />
推荐: