編輯,以澄清:用RequireJS加載jQuery - 哪個更好,本地版本還是CDN?
在性能(雖然這仍然是一個野生來看,我知道),這是更好的條件 - 加載本地版本,或jQuery的的CDN版本,在RequireJS?
爲了記錄在案,RequireJS online doc包含一些通道似乎CDN使用勸阻,但我真的不知道意味着什麼100%:
不要在構建墊片配置混合CDN負載。示例方案: 您從CDN加載的jQuery但使用墊片配置加載的東西 像股票版本骨幹依賴於jQuery的。當您執行 構建時,請務必在構建的文件中內聯jQuery,並且不要從CDN加載 。否則,Backbone將被內聯在構建文件 中,並且它將在加載CDN的jQuery之前執行。這是 ,因爲shim配置只是延遲加載文件,直到加載了 依賴項,但不執行任何自定義的自動換行。 構建完成後,依賴關係已經內聯,shim config 不能延遲執行非define()的d代碼,直到稍後。 限定()'d模塊也與CDN加載代碼的生成,因爲他們 妥善包裝的根源在於定義,直到依賴被加載,這將 不執行出廠功能後工作。所以課程:shim config 是針對非模塊化代碼,遺留代碼的一種權宜之計。 define()'d模塊更好。
從理論上講,使用CDN jQuery文件會導致多出1個HTTP請求(不能與使用r.js的其他JS文件合併),但有可能使您的訪問者緩存CDN來自其他網站的版本。
但是,如果我這樣做是正確的Google搜索信息,你仍然需要提供本地的jQuery複製到r.js,所得到的精縮JS文件仍然需要包含了jQuery的副本模塊來確保依賴性的一致性。這將導致通過本地和CDN加載jQuery。 (希望我得到這個部分吧?)
那麼,哪種方式更好?
您是否考慮到如果他加載本地副本,它將被連接成一個signle js文件?因此,通過加載CDN版本,您將額外請求的開銷添加到另一個域... – JasonStoltz