開始我的初步認識-RequireJS能給我們帶來什麼好處? 1、實現js文件的非同步載入,避免網頁失去響應; 2、管理模塊之間的依賴性,便於代碼的編寫和維護。 3、基於AMD模塊化機制,讓前端代碼也能實現模塊化。查看《CommonJS和AMD/CMD區別詳解》。 ...
前言:其實很早前就已經接觸和瞭解到RequireJS了,當時只是大概明白它能用來控制JS的載入順序,即:頁面一定要先載入這個JS,再載入那個JS,對於RequireJS的好處還沒有一個真正的體會和認識,更沒有深一步的瞭解,頂多只是有一些接觸,且不明所以然。
直到最近本人遇到一個問題:我的一個頁面JS(A)的初始化方法需要根據用戶設置的幣種展示對應的金額,頁面預設美元&美金,但是我的頁面Ajs呢,依賴於一個幣種JS(Bjs),幣種Bjs裡面提供的幣種金額轉換的方法,需要手動調用,但是Bjs獲取匯率的方法是頁面載入完成後再獲取。 也就是你在Ajs轉換這個金額的時候,理論上必須得先等Bjs的頁面初始化的非同步請求JS拿到結果後,再條用Bjs的轉換金額方法,這就有問題了:Ajs和Bjs都是頁面載入完後自動調用,我無法保證他們的順序啊? 我已經把Bjs放在Ajs上面了,還是不行,因為:它們都使用的初始化方法:$(function(){})做的事情,這就比較尷尬了。
後來想了半天相出一個方案:Ajs轉換金額時,先查詢一下Bjs里的對象的值都有沒有,沒有的話,我需要在Ajs加一個同樣功能的一部分的獲取匯率的非同步請求的Bjs里的代碼,放在Ajs里主動調用,來保證Bjs里需要的基礎數據提前準備好! 這樣做很笨:第一:增加了重覆代碼量,不便於維護。 第二:解決方案過時,太原始。
同事給我整了RequireJS的解決方案,使用它的特性:能讓JS進行依次依賴性的載入:require(["Ajs"],function(){require["Bjs"]}); 強調:載入Bjs之前,需要先把Ajs載入完畢才行!!!非常好,非常有啟發
於是從今天開始,我得認真的去瞭解RequireJS到底是什麼?能給我們帶來什麼好處? 該怎麼用?
開始我的初步認識-RequireJS能給我們帶來什麼好處?
1、實現js文件的非同步載入,避免網頁失去響應;
2、管理模塊之間的依賴性,便於代碼的編寫和維護。
3、基於AMD模塊化機制,讓前端代碼也能實現模塊化。查看《CommonJS和AMD/CMD區別詳解》。
參考頁面:https://blog.csdn.net/hahahhahahahha123456/article/details/80211254