我正在尋找一種乾淨的方式來異步加載以下類型的JavaScript文件:「核心」js文件(嗯,讓我們只是叫它,哦,我不知道,「jquery!」哈哈),x個依賴於正在加載的「core」js文件的js文件,以及其他不相關的js文件的數量。我有一些關於如何去做的想法,但不知道最好的方法是什麼。我想避免在文檔主體中加載腳本。異步加載js文件和其他相關的js文件
因此,舉例來說,我想下面的4個JavaScript文件異步加載,適當命名的:
/js/my-contact-page-js-functions.js // unrelated/independent script
/js/jquery-1.3.2.min.js // the "core" script
/js/jquery.color.min.js // dependent on jquery being loaded
http://thirdparty.com/js/third-party-tracking-script.js // another unrelated/independent script
但是,這是行不通的,因爲它不能保證jQuery是彩色插件之前加載中...
(function() {
var a=[
'/js/my-contact-page-functions.js',
'/js/jquery-1.4.2.min.js', '/js/jquery.color.js',
'http://cdn.thirdparty.com/third-party-tracking-script.js',
],
d=document,
h=d.getElementsByTagName('head')[0],
s,
i,
l=a.length;
for(i=0;i<l;i++){
s=d.createElement('script');
s.type='text/javascript';
s.async=true;
s.src=a[i];
h.appendChild(s);
}
})();
幾乎不可能異步加載jquery和color插件嗎? (由於顏色插件需要jQuery是第一次加載。)
我正在考慮第一種方法是剛剛合併使用jQuery源色彩插件腳本到一個文件中。
然後另一個想法我已經被加載插件的顏色,像這樣:
$(window).ready(function() {
$.getScript("/js/jquery.color.js");
});
任何人有你會如何去什麼想法?謝謝!
LAB似乎不再被維護,所以我改變了你接受的答案,因爲你提到了RequireJS。 (現在可能是一個更好的選擇!)希望這是對這裏的老問題做「正確的」事情。 – taber 2017-01-15 05:35:23