對於同步模組,模組必須提前載入進記憶體。 對於非同步模組,比如說他的實作requirejs,依賴前置,且提前執行,這不也是提前載入進記憶體了嗎,那為什麼說是異步的?看了很多AMD和CMD的知識,就是不太明白同步模組載入和非同步模組載入的差別。
這個機制和【內存】關係並不大,更多可以理解為【腳本的下載時機】。
前端的特殊性在於,腳本檔案的體積和下載時間,會直接影響頁面效能。同步載入的規範中,所有依賴必須下載好後,腳本才能執行。
而異步載入的規範中,只有程式碼運行到需要的位置時,才會載入所需的腳本。例如一個巨大的單頁應用,首頁部分的腳本可以特別輕,而進入某個功能頁時,再異步加載需要的模組,這樣對效能有很大的幫助。
requirejs的非同步載入本質上是在
這個機制和【內存】關係並不大,更多可以理解為【腳本的下載時機】。
前端的特殊性在於,腳本檔案的體積和下載時間,會直接影響頁面效能。同步載入的規範中,所有依賴必須下載好後,腳本才能執行。
而異步載入的規範中,只有程式碼運行到需要的位置時,才會載入所需的腳本。例如一個巨大的單頁應用,首頁部分的腳本可以特別輕,而進入某個功能頁時,再異步加載需要的模組,這樣對效能有很大的幫助。
requirejs的非同步載入本質上是在
裡append需要非同步載入的