簡體   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