2014-11-05 72 views
0

我開始第一次使用requirejs,而且我發現使用它的方式可能會對瀏覽器性能造成影響。這是的情況:Requirejs和瀏覽器內存管理

我的應用程序的性質是這樣的,我需要加載的JavaScript模塊的集合必須在運行時決定。基於用戶輸入,我必須加載十個js文件的任何子集1.js ... 10.js。我用requirejs做這個加載。問題出現在編寫1.js ... 10.js時:它們都使用requirejs加載React。我的理解是,每個加載的React模塊都將成爲瀏覽器內存中的新對象。只有幾個文件,它是一個重要的資源。不過,我很好奇擴展到這些動態加載的JavaScript文件有100個的情況,我是否應該擔心這種內存問題(特別是在移動瀏覽器上)?這種擴大並不一定會發生,所以把它當作我的教化的思想實驗。

謝謝!

回答

3

RequireJS的基本規則是一個模塊只創建一次。它在第一次被請求時創建,並且所有後續請求獲得模塊的相同副本。

  1. 您除了默認的創建contexts

    如果規則不適用。您必須在傳遞給requirejs.config的配置中明確創建上下文,所以如果您現在不創建上下文,那麼您只使用默認上下文。如果你在兩個不同的上下文中請求相同的模塊,它將被加載兩次。如果使用requirejs.undef。如果您取消定義某個模塊並再次需要它,那麼它將會重新創建。

現在如果調用特定於第三方庫的函數,會發生什麼情況取決於這些庫。例如,如果一個庫有一個被稱爲十幾次的函數,它可能會在每次調用它時分配新的結構。您必須通過閱讀庫的文檔或閱讀源代碼來確定這一點。

+0

非常有用。非常感謝。 – 2014-11-06 21:11:37