Javascript 使用Modernizer/yepnope时的长延迟

Javascript 使用Modernizer/yepnope时的长延迟,javascript,jquery,html,modernizr,yepnope,Javascript,Jquery,Html,Modernizr,Yepnope,这些天来,我开始在前端项目中使用Modernizer,我刚刚意识到一些让我头疼的事情 (代码片段后的演示链接) 但首先,这里是我的之前的内容: 演示链接: 我可以看到页面加载,几乎一秒钟之后,我的幻灯片初始值设定项(包装在$()调用中)开始启动。这种延迟相当长而且不美观,这正是我想要修复的 我查看了Chrome中的网络选项卡,看到我加载的Modernizer脚本首先作为图像加载(因此,不执行),然后作为script标记添加,最后执行。这就解释了延迟的原因,因为jQuery执行得很晚(在DOMCo

这些天来,我开始在前端项目中使用Modernizer,我刚刚意识到一些让我头疼的事情

(代码片段后的演示链接)

但首先,这里是我的
之前的内容:

演示链接:

我可以看到页面加载,几乎一秒钟之后,我的幻灯片初始值设定项(包装在
$()
调用中)开始启动。这种延迟相当长而且不美观,这正是我想要修复的

我查看了Chrome中的网络选项卡,看到我加载的Modernizer脚本首先作为图像加载(因此,不执行),然后作为
script
标记添加,最后执行。这就解释了延迟的原因,因为jQuery执行得很晚(在DOMContentLoaded事件之后),然后调用
$()

一些问题:

  • 这就是现代化/yepnope的工作原理吗
  • 有可能减少这种延误吗
  • Modernizer/yepnope使用什么事件来确定何时注入
    script
    标记?看起来是
    load
    ,但这对我来说似乎是个奇怪的选择
  • 我尝试过根本不使用
    modernizer.load
    并在
    标记之前引用我的脚本,它工作得很好(没有幻灯片大小跳跃),但维护起来越来越困难

    有小费吗?
    谢谢

    Modernizer中的脚本加载功能不是为性能而设计的。您最好按照惯例(即使用
    标记)或使用RequireJS加载脚本。
    <script src="js/vendor/modernizr.custom.js" type="text/javascript"></script>
    <script src="js/loader.min.js" type="text/javascript"></script>
    
    Modernizr.load([
    
        // jQuery
        {
            load: '//ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js',
            complete: function () {
                if (!window.jQuery) {
                    Modernizr.load('js/vendor/jquery-1.11.1.min.js');
                }
            }
        }
    
        // Slick (slideshow)
        ,{
            load: '//cdn.jsdelivr.net/jquery.slick/1.3.9/slick.min.js',
            complete: function() {
                if (!window.jQuery.fn.slick) {
                    Modernizr.load('slick/slick.min.js');
                }
            }
        }
    
        // Main script
        ,'js/script.min.js'
    ]);