【问题标题】:loading jQuery via modernizr通过modernizr加载jQuery
【发布时间】:2011-06-24 16:33:03
【问题描述】:

刚刚开始一个新的 HTML5 项目并使用modernizr.js

我在 modernizr 文档页面上注意到它说您可以使用以下内容:

Modernizr.load([
  {
    load: '//ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.js',
    complete: function () {
      if ( !window.jQuery ) {
            Modernizr.load('js/libs/jquery-1.6.1.min.js');
      }
    }
  }
]);

所以在我的 HTML 中我有这个:

<script src="scripts/modernizr-2.0.6.js"></script>
<script>
Modernizr.load([
    {
        load: 'https://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js',
        complete: function () {
            if ( !window.jQuery ) {
                        Modernizr.load('scripts/jquery-1.6.1.min.js');
            }
        }
    }
]);
</script>

但是看着萤火虫,没有 jquery 正在加载。

我在这里遗漏了什么明显的东西吗?

干杯, 阿迪

【问题讨论】:

  • 你应该避免这种情况,你正在杀死并行脚本下载并使页面加载速度变慢(当 jq 开始应用其样式时会出现明显的闪烁)。
  • 在网站上它说“Modernizr.load 不会减慢任何速度,并且有时可以通过异步和并行加载脚本来稍微提高性能。”?
  • 你怎么看,浏览器开始加载它在&lt;head&gt;标签中看到的所有内容,并且你的脚本不会在那里直到modernizr完成下载并且脚本执行之后.
  • @Blindy,你的逻辑完全不对。 &lt;script&gt; 标签不能并行下载,所以在最坏的情况下,这只需将它们都作为&lt;script&gt; 标签粘贴。
  • @Adi,你在哪里检查 Firebug?我的意思是,您只是在某处添加了console.log 命令,还是在查看窗口属性?

标签: jquery modernizr


【解决方案1】:

Modernizr 是一个小型库,它可以快速加载和执行,是的,它会并行加载脚本,所以使用它是个好主意。关于您的错误,请从 url 中删除 https: 并按照示例进行尝试。

【讨论】:

  • 嗨 ToyDaVirus。原来问题是开发版本不使用加载器。 cmets 的顶部是 '* Modernizr 有一个可选的(不包括在内的)条件资源加载器,称为 Modernizr.load(),基于 Yepnope.js (yepnopejs.com)。要获得包含 Modernizr.load() 的构建,以及选择要包含的测试,请访问 www.modernizr.com/download/' 所以只需从那里下载就可以了 :)
  • 哦!凉爽的。所以没有构建您的自定义版本并下载。无论如何,要走!
【解决方案2】:

因为我遇到了同样的问题,Adi 在这里解决了 Modernizer.load 对某些人不起作用的原因:

嗨,ToyDaVirus。原来问题是开发版本不使用加载器。 cmets 的顶部是 '* Modernizr 有一个可选的(不包括在内的)条件资源加载器,称为 Modernizr.load(),基于 Yepnope.js (yepnopejs.com)。要获得包含 Modernizr.load() 的构建,以及选择要包含的测试,请访问 www.modernizr.com/download/' 所以只需从那里下载就可以了 :)

【讨论】:

    【解决方案3】:

    把下面的代码放在前面

    Modernizr.load([
                    {
                        test: Modernizr.mq('(min-device-width: 320px) and (max-device-width: 728px)'),
                        yep : ['mob.css', 'jquery.mobile-1.1.0.css', 'jquery.mobile-1.1.0.js'],
                        nope : 'pc.css'
                    }
                ]);
    

    这样就可以加载多个文件如css、js

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-11-24
      • 2011-06-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多