Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/blackberry/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 有人能给我解释一下为什么在EmberJS初学者工具包中包含了两个jQuery吗_Javascript_Ember.js - Fatal编程技术网

Javascript 有人能给我解释一下为什么在EmberJS初学者工具包中包含了两个jQuery吗

Javascript 有人能给我解释一下为什么在EmberJS初学者工具包中包含了两个jQuery吗,javascript,ember.js,Javascript,Ember.js,我刚刚看到了EmberJS初学者工具包附带的index.html,您可以通过单击“下载初学者工具包”获得该工具包 在body标记的末尾有一点奇怪的代码(在最后一刻加载脚本): !window.jQuery&&document.write(unescape(“%3Cscript src=”js/libs/jQuery-1.6.1.min.js”%3E%3C/script%3E')) 好的,我理解最后两个,加载ember库,然后运行ember应用程序。我也理解第一个,从Google的CDN获取j

我刚刚看到了EmberJS初学者工具包附带的index.html,您可以通过单击“下载初学者工具包”获得该工具包

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


!window.jQuery&&document.write(unescape(“%3Cscript src=”js/libs/jQuery-1.6.1.min.js”%3E%3C/script%3E'))
好的,我理解最后两个,加载ember库,然后运行ember应用程序。我也理解第一个,从Google的CDN获取jQuery,但我不明白为什么你会有第二个脚本标签!这仅仅是为了让你不依赖谷歌的CDN并提供你自己的jQuery副本吗

有人能告诉我这是否是最佳实践,或者我是否应该向EmberJS提交一个bug,以便他们将其从入门工具包中删除


谢谢

我想作者在想,如果jquery无法从googleapis加载,那么为了安全起见,应该包括一个本地版本。注意

!window.jQuery

如果jQuery是从第一个脚本标记加载的,那么
window.jQuery
将计算为true。因此,
!jQuery将计算为false,第二行中的表达式将短路。但是,如果jQuery没有从第一行加载,那么
!jQuery
将为true,文档将为私有托管版本编写脚本标记。这允许客户机从GoogleAPI加载jQuery,这可能会更快,但在加载失败的情况下会给客户机一个回退


您可能需要阅读JavaScript。

这几乎是我从代码中得出的结论,但我认为我缺少的一点是它需要回退的原因。我在twitter上得到了一个答案,它告诉我为什么要回到本地副本?有时可能无法加载CDN版本。例如:-您正在一台断开连接的计算机上进行开发-一个国家或工作场所的网络会阻塞CDN-各种连接问题
!window.jQuery