我怀疑我正在使用的rel-prefetch是否按预期执行 . 事实上,我没有在网页测试中看到dns部分与其余部分分开(因为它应该是)(参见https://stackoverflow.com/a/40380983/1467802或其中一个关于谷歌分析的图表https://christoph-rumpel.com/2013/04/front-end-performance-part-01-assets-loading/ loading)

View.html

<link rel="dns-prefetch" href="https://connect.facebook.net" />
<link rel="dns-prefetch" href="https://www.facebook.com" /> 
<link rel="preconnect" href="https://connect.facebook.net" />
<link rel="preconnect" href="https://www.facebook.com" />

在我的页面中,我只在用户点击按钮时调用以下facebook sdk

$('#button").on('click', function(e) {
  window.fbAsyncInit = function() {
      FB.init({
        appId             : fbAppId,
        autoLogAppEvents  : true,
        status            : false,
        xfbml             : true,
        version           : 'v2.11'
      });

    };
    (function(d, s, id){
      console.log('LIBRARY - Loading and initializing Facebook javascript SDK');
      var js, fjs = d.getElementsByTagName(s)[0];
      if (d.getElementById(id)) {return;}
      js = d.createElement(s); js.id = id; js.async = true;
      js.src = "//connect.facebook.net/en_US/sdk.js";
      fjs.parentNode.insertBefore(js, fjs);
     }(document, 'script', 'facebook-jssdk')
    );
});

因此,当我加载页面并检查Chrome开发工具时,我原本不希望看到sdk(这是预期的,因为它只会在我点击#button时加载)但至少要看到dns查找的地方但我不知道在“网络”选项卡上和“性能”选项卡上都看不到有关此预取请求的任何符号/提示 . 当我点击#button时,在网络选项卡中显示sdk.js的一行,但检查Timing详细信息,我看到dns就在rets之前,它们之间没有“间隙”,而且似乎没有发生好在休息之前应该有 .

如何以及在哪里发现Chrome Dev工具中的“dns预取” .

我在这里给出了fb脚本的例子,但对于我的其他脚本,它是同样的事情 .