html - dns 预取/预解析主机名 - 效果如何?

标签 html http dns

我一直在阅读它是如何工作的,但我很难理解它。

据我所知,我是否设置了 <link rel="dns-prefetch" href="//ajax.googleapis.com" />在我的网页的头部,我应该看到一个更快的请求完成是我引用了这个域上的任何 Assets 。 [ref]

目前有两个问题困扰着我:

1) 这是否只对以后的页面请求有帮助

我的意思是,如果我使用 Google 的 CDN 在我网站的每个页面上获取 jQuery,将会添加 <link />以上有什么区别吗?或者只有当我没有在我的主页上引用 CDN 而在所有其他页面上引用时,它才会有帮助吗?在第二个选项中,用户将点击主页,解析并缓存 DNS 主机,准备好在我的内容页面上下载。

2) 我怎样才能测试它的有效性?

我想如果我知道这个问题的答案,我会对问题 1 有更好的理解。我正在尝试使用 Firebug 和 Chrome 开发人员工具并查看网络和资源面板,但我没有发现任何显着差异。我能看到的唯一趋势是,如果有的话,当我使用 <link /> 时完成我的请求需要更长的时间。 !!

我已阅读关于 MDN 的文档和 the Chromium Blog (都是旧的!)但我还是不明白。

我们将不胜感激 - 谢谢!

更新 - 22/01/2013

只需阅读更多关于这个问题的内容,我认为我应该为有同样问题的人提供链接。 csswizardry 写了一篇关于性能的很棒的文章,其中he references this issue并链接到 more research from perfplanet .如果有人对此有更多信息/见解,请添加答案!

This is a link to another, more recent, SO question - 希望这会帮助人们找到他们正在寻找的答案。

最佳答案

在第一种情况下,DNS 预取将无济于事,因为您在每个页面上加载相同的资源。该资源应在后续请求中缓存,因此预取 dns 记录不会有任何影响。

在第二种情况下,简单地删除和添加 link 元素不足以测试预取的效果。即使没有 link 元素,浏览器也会扫描 hrefs 以确定要预取的域 - link 标记旨在告诉它预取除了浏览器会找到的域之外的域 - 这在您知道链接的情况下很有用到一个域最终重定向到另一个域。

查看预取标记效果的一种方法是设置几个站点。 www.example.com/index.html 将包含指向 www.anotherexample.com 的链接,该链接又会重定向到 www.athirdsite.com。如果您在使用和不使用指向 www.athirdsite.com 的链接标记的情况下测试此配置,您可能会发现使用链接标记时速度更快。如果正在使用的名称服务器具有高延迟,您更有可能看到这种效果。

最后,我只是让浏览器做它的事情,除非你有一个非常特殊的理由指示它做一些额外的事情。

关于html - dns 预取/预解析主机名 - 效果如何?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7724935/

相关文章:

javascript - Bootstrap 选项卡通过在 jquery 中使用表单 id 提交多个表单

javascript - 拥有多个 css 和 javascript 文件

Linux shell 临时 DNS

dns - 无法从内网访问网站

html - MVC Razor,按特定顺序显示显示数据

.net - HTTP Web 服务和 HTTP 响应代码

java - Android:4.0 ICS 上奇怪的 openStream

java - 什么会导致 TCP/IP 在不断开连接的情况下丢弃数据包?

c# - 如何在具有多棵树的 AD 林中的全局目录中搜索用户

html - 2 个具有不同延迟的 css 过渡