鍍金池/ 問答/HTML/ 動態(tài)加載JavaScript之后再運(yùn)行代碼的問題

動態(tài)加載JavaScript之后再運(yùn)行代碼的問題

在某個頁面需要動態(tài)加載 jQuery,等到 jQuery 加載完成后再執(zhí)行后續(xù)代碼。但是我不想把后續(xù)代碼放到 ajax 請求的回調(diào)函數(shù)里,因為后續(xù)代碼有幾千行,而且都是頂層的,我不希望在它們外部加上一層嵌套。求解該如何處理?

if (typeof jQuery === 'undefined') {    fetch('https://code.jquery.com/jquery-2.0.3.min.js', {
            method: 'get'
        })
        .then(function (response) {
            response.text()
                .then(function (data) {
                    let element = document.createElement('script');
                    element.setAttribute('type', 'text/javascript');
                    element.innerHTML = data;
                    document.head.appendChild(element);
                    console.log(typeof jQuery);
                    // 檢查 typeof jQuery 為 function 之后再執(zhí)行外部的代碼。
                });
        });
}

// 外部代碼,如:
console.log('jquery loaded');

ajax 請求可以不用 fetch,但是需要用異步。也可以改成設(shè)置 script 的 src 的方式來加載 jQuery。主要是不讓后面的代碼再加一層嵌套??赡芤菜闶菑?qiáng)迫癥吧,求教~

回答
編輯回答
笑忘初

如果想在你標(biāo)示的外部代碼里寫,那是不可能的。
以前有人也有和你一樣的問題,然后就有了commonjs、requirejs等,現(xiàn)在模塊加載已經(jīng)成了ES6的標(biāo)準(zhǔn)。
所以如果你有強(qiáng)迫癥,那就不能嫌麻煩,把模塊加載相關(guān)的姿勢擼了吧。

2017年5月13日 21:21