繁体   English   中英

有人可以向我解释为什么EmberJS Starter工具包中包含jQuery的2个内容

[英]Can someone explain to me why there are 2 inclusions of jQuery in the EmberJS Starter kit

我一直在查看通过单击http://emberjs.com/上的“下载入门工具包”获得的EmberJS入门工具包随附的index.html。

在body标签的末尾有一些奇怪的代码(在最后一刻加载脚本):

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js"></script>
<script>!window.jQuery && document.write(unescape('%3Cscript src="js/libs/jquery-1.6.1.min.js"%3E%3C/script%3E'))</script>
<script src="js/libs/ember-0.9.5.min.js"></script>
<script src="js/app.js"></script>

好的,我了解了最后两个,加载了ember库,然后运行ember应用程序。 我也了解第一个脚本,可以从Google的CDN中获取jQuery,但是我不明白为什么会有第二个脚本标签! 这是否只是为了避免您依赖Google的CDN并发布自己的jQuery副本?

有人可以告诉我这是否是最佳做法,还是我应该向EmberJS提交错误,以便他们从入门工具包中删除它。

谢谢

我认为作者认为,万一jquery无法从googleapis加载,则为了安全起见,请包含本地版本。 注意

!window.jQuery

如果从第一个脚本标签加载jQuery,则window.jQuery评估结果为true。 因此, !window.jQuery将计算为false,第二行中的表达式将短路。 但是,如果没有从第一行加载jQuery,则!window.jQuery将为true,并且文档将为私有托管版本编写script标签。 这允许客户端从Google API加载jQuery,这可能会更快,但在加载失败的情况下会提供备用。

您可能想阅读JavaScript中的类型强制

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM