也许前端工程师们很少注意DNS解析这么一个不起眼的过程,但是事实上DNS解析和内容载入是一个串行的过程,也就是说,如果能够优化DNS解析的时间,那么对于网站载入优化是成功的。可是真的有可能吗?正当你疑惑的时候,DNS Prefetch横空出世。
顾名思义,DNS Prefetch就是DNS预解析,默认情况下浏览器会对页面中和当前域名(正在浏览网页的域名)不在同一个域的域名进行预获取,并且缓存结果,这就是隐式的DNS Prefetch。
DNS Prefetch 已经被下面的浏览器支持
- Firefox: 3.5+
- Chrome: Supported
- Safari 5+
- Opera: Unknown
- IE: 9 (called “Pre-resolution” on blogs.msdn.com)
如果想对页面中没有出现的域进行预获取,那么就要使用显示的DNS Prefetch了,也就是使用link标签:
<link rel=”dns-prefetch” href=”http://api.twitter.com”/>
DNS Prefetch应该尽量的放在网页的前面,推荐放在<meta charset=”/>后面。
PS:可以通过下面的标签禁止隐式的DNS Prefetch。
<meta http-equiv=”x-dns-prefetch-control” content=”off”>