JavaScript >> Javascript 文檔 >  >> JavaScript

使用 JavaScript 異步加載腳本

在現代網絡中,通常使用 Google Analytics、Facebook Login 等第三方庫來與這些服務集成。

在本文中,您將學習如何使用 JavaScript 在瀏覽器中異步加載外部腳本文件。

這個想法是創建一個以腳本 URL 作為參數並使用 Promise 異步加載它的函數。

當腳本加載完成時,promise 會被解析成功,否則會被拒絕。

const loadScript = (src, async = true, type = "text/javascript") => {
    return new Promise((resolve, reject) => {
        try {
            const el = document.createElement("script");
            const container = document.head || document.body;

            el.type = type;
            el.async = async;
            el.src = src;

            el.addEventListener("load", () => {
                resolve({ status: true });
            });

            el.addEventListener("error", () => {
                reject({
                    status: false,
                    message: `Failed to load the script ${src}`
                });
            });

            container.appendChild(el);
        } catch (err) {
            reject(err);
        }
    });
};

讓我們嘗試加載 Facebook JavaScript SDK:

loadScript("https://connect.facebook.net/en_US/sdk.js")
    .then((data) => {
        console.log("Facebook script loaded successfully", data);
    })
    .catch((err) => {
        console.error(err);
    });

而已!一旦成功解決,您還可以在 Promise 中執行操作。這個技巧也可以用於有條件地為不同環境加載腳本。


Tutorial JavaScript 教程
  1. 我如何構建我的第一個 npm 包,一個類似聊天應用程序的命令

  2. Firefox 上的 event.target

  3. 使用 MooTools 的 OverText 創建優雅的輸入

  4. Reactjs 投資組合項目

  5. 在 React 中渲染道具和渲染函數。

  6. React Hook - 清理 useEffect

  7. React Native vs Flutter – 選擇你的英雄

  1. JavaScript var、let 和 const 是如何工作的?

  2. NPM 啟動問題

  3. 您如何獲取和處理您的數據

  4. 你應該知道的 6 個高級 JavaScript 概念

  5. 如何檢查是否所有復選框都未選中

  6. 列出 JavaScript 中生成器函數的常見用例

  7. 如何使用 JavaScript 創建滾動到頂部按鈕

  1. 在 puppeteer 中加載 chrome 擴展

  2. 所以你想做一個 Twitter 機器人 (1/3)

  3. 從 Vue JS 開始

  4. JavaScript 中的窗口對象屬性