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