[英]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.