在使用requirejs的define時候,有時候需要根據一些條件判斷去載入某些檔案,比如在移動版下載入某個外掛程式,在pc版下載入另乙個外掛程式,網上常見的方法一般是的define裡面再去用require方法載入,但這樣有個問題,就是如果後面還有檔案依賴這個外掛程式,require方法是不能保證在下面的檔案使用時保證這個外掛程式載入完畢的。
參考了angularamd的ngload外掛程式和requirejs-promise外掛程式,自己寫了乙個滿足當前專案的業務邏輯的外掛程式,叫dyload.js
/**
dyload.js
example:
1) dyload!window.ismobile?a:b|c|d
equal to
if(window.ismobile)require([a])
else require([b,c,d]) 2)
dyload!window.ismobile?a|b
equal to
if(window.ismobile)require([a,b])
**/define()
} else
}});
//需要在requirejs中配置一下:
require.config(
}});
用法很簡單:
define(["require","angular",'directives/common.directive', "dyload!window.ismobile?directives/menu-list-m.directive:directives/paging.directive|directives/menu-list.directive",
], function(require,ng) );
//mobile下載入menu-list-m.directive,pc下載入另外兩個檔案
或者
define(["require","angular",
//pc下載入uigrid,mobile下不載入
angularamd:
requirejs-promise:
用r.js壓縮**的時候,使用這個外掛程式會報錯,r.js找不到這個玩意。需要在壓縮配置檔案裡面的onbuildread和onbuildwrite裡處理一下
RequireJS核心 之模組載入
requirejs的目標是鼓勵 的模組化,它使用了不同於傳統標籤的指令碼載入步驟。可以用它來加速 優化 但其主要目的還是為了 的模組化。它鼓勵在使用指令碼時以module id替代url位址。requirejs以乙個相對於baseurl的位址來載入所有的 頁面頂層標籤含有乙個特殊的屬性data ma...
requireJs 引用cdn失敗後載入本地js
問題 頁面中引用js和css過多會導致頁面載入變慢 引用cdn中的js和css會比直接在本地上傳時間短 解決辦法 我本地專案用到requirejs載入頁面中的js和css,變為cdn載入時需要改動如下 1.jquery static lib jquery jquery 1.9.1.min 2.增加b...
動態呼叫DLL時不能載入依賴的程式集
假設有2個dll,class1和class2.class1引用class2,並呼叫class2裡的方法。namespace feiyun0112.cnblogs.com namespace feiyun0112.cnblogs.com 如果我們動態呼叫class1裡的方法,會報無法載入 class2...