Jquery 通过modernizr.load加载respond.js async很慢?

Jquery 通过modernizr.load加载respond.js async很慢?,jquery,asynchronous,modernizr,respond.js,Jquery,Asynchronous,Modernizr,Respond.js,我使用modernizer.load()方法来测试浏览器(ie)是否理解媒体查询,如果不理解,则加载respond.js库 但是,我看到通过modernizr.load方法加载respond.js会得到一个FOUC,而内联脚本方法没有 现代化加载方法: <script> Modernizr.load([{ load: 'https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js', comple

我使用modernizer.load()方法来测试浏览器(ie)是否理解媒体查询,如果不理解,则加载respond.js库

但是,我看到通过modernizr.load方法加载respond.js会得到一个FOUC,而内联脚本方法没有

现代化加载方法:

<script>
  Modernizr.load([{
    load: 'https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js',
    complete: function () {
      if (!window.jQuery) {
        yepnope('js/libs/jquery.js?v=1.7.2');
      }
    }
  },
  {
    test: Modernizr.mq('only all'),
    nope: 'js/plugins/respond.js?v=v1.1'
  }])
</script>

现代化负荷([{
负载:'https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js',
完成:函数(){
如果(!window.jQuery){
yepnope('js/libs/jquery.js?v=1.7.2');
}
}
},
{
测试:modernizer.mq('only all'),
否:“js/plugins/respond.js?v=v1.1”
}])
内联方法:

<!--[if lte IE 8]>
  <script src="js/plugins/respond.js?v=v1.1"></script>
<![endif]-->


为什么会这样?异步方法不应该更快吗?或者内联方法更好,因为脚本正在阻塞DOM并等待脚本加载…?

这取决于您对FOUC的关注程度。异步方法的优点是它是非阻塞的。我将切换它,以便首先响应,这样您就不必等待jQuery被解析。这可能会解决FOUC问题。在
()中调用
modernizer.load
,如下所示:

Modernizr.load([{
    test: Modernizr.mq('only all'),
    nope: 'js/plugins/respond.js?v=v1.1'
  },{ 
    load: 'https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js',
    complete: function () {
        window.jQuery || Modernizr.load('js/libs/jquery.js?v=1.7.2');
    }
}]);
你的IE是一个很好的解决方案。如果您这样做了,那么只需将其放在jQuery之前,就可以了:

<!--[if lt IE 9]> 
    <script src="js/plugins/respond.js?v=v1.1"></script>
<![endif]-->

Modernizr.load([{
    load: 'https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js',
    complete: function () {
        window.jQuery || Modernizr.load('js/libs/jquery.js?v=1.7.2');
    }
}]);

现代化负荷([{
负载:'https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js',
完成:函数(){
window.jQuery | | modernizer.load('js/libs/jQuery.js?v=1.7.2');
}
}]);