Javascript 有人能给我解释一下为什么在EmberJS初学者工具包中包含了两个jQuery吗
我刚刚看到了EmberJS初学者工具包附带的index.html,您可以通过单击“下载初学者工具包”获得该工具包 在body标记的末尾有一点奇怪的代码(在最后一刻加载脚本):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
!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