簡體   English   中英

何時使用Requirejs以及何時使用捆綁的javascript?

[英]When to use Requirejs and when to use bundled javascript?

對於網絡人來說,這可能是一個愚蠢的問題。 但我對此感到有些困惑。 現在,我有一個應用程序,我使用幾個Javascript文件來執行不同的任務。 現在,我正在使用Javascript 捆綁器來組合和縮小所有文件。 因此,在運行時只有一個app.min.js文件。 現在, Requirejs用於在運行時加載模塊或文件。 所以,問題是如果我已將所有內容都放在一個文件中,那么我是否需要requirejs? 或者什么是用例場景我可以使用requirejs和/或bundler?

如果需要進一步的細節,請告訴我。

通常,您在開發期間僅在其加載形式中使用RequireJS。 站點完成並准備部署后,您將縮小代碼。 這里的優點是RequireJS確切地知道你的依賴是什么,因此可以很容易地以正確的順序縮小代碼。 以下是RequireJS網站上的內容

完成開發並希望為最終用戶部署代碼后,可以使用優化器將JavaScript文件組合在一起並進行縮小。 在上面的示例中,它可以將main.js和helper / util.js組合到一個文件中並縮小結果。

這是許多熟練的JavaScript開發人員中一個備受爭議的問題。 許多其他語言都有一個“編譯”階段,整個程序捆綁在一起進行部署(JBoss的.WAR文件會浮現在腦海中)。 來自更傳統背景的程序員通常喜歡這種方法。

Javascript近年來已經看到這樣的增長,很難確定最佳實踐,但那些欣賞Javascript更多功能性的人通常更喜歡模塊加載方法(如require.js使用)。

我編寫的Frame.js與require.js非常相似,所以我偏向於模塊加載器方法。

直接回答你的問題,是的,它是一個或另一個。

大多數認為將腳本打包到單個文件中的人認為它可以實現更多壓縮,從而提高效率。 我相信在大多數情況下,包裝的效率優勢可以忽略不計,因為:(1)模塊加載時間分布在整個會話中,(2)單個模塊可以壓縮到幾乎相同的百分比,(3)單個模塊可以緩存單獨的服務器和路由器,以及(4)僅在需要時加載腳本最終允許您為一些用戶加載更少的代碼和更多的代碼。

從長遠來看,如果您可以看到動態腳本加載的優勢,請使用它。 如果沒有,請將腳本捆綁到一個文件中。

這取決於您的應用程序。 如果你正在制作一個只有適度的javascript(小於100kb縮小)的服務器端應用程序然后去完全捆綁,你可能會沒事的。

但是如果你正在制作一個javascript應用程序並且其中包含大量代碼,那么你的需求將會有所不同。

例如,在我的應用程序中,我捆綁了所有核心文件。 有jQuery,下划線,主干,我的主要應用程序文件,我的用戶登錄系統,我的布局系統,我的通知和聊天系統,都是我的大型初始文件的一部分。

但是我還有許多其他模塊,它們不是初始包的一部分,在那之后加載。

論壇,wiki,wysiwyg,顏色選擇器,拖放,日歷和一些動畫文件是第二類的一部分。 您需要立即做出合理的決定,以確定哪些是常用的,哪些是可以延遲的。

如果我立即包含所有內容,我可以獲得超過一個巨大的javascript,這將是瘋狂的,並使初始啟動速度慢得令人無法接受。

initSuccess事件從初始文件觸發后,第二個類別開始下載。

但第二類比第一類更智能,因為它首先加載了更重要的東西。 例如,如果您正在查看維基,它將在加載顏色選擇器之前加載維基。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM