首页 > 解决方案 > jQuery 延迟后加载 jQuery 插件文件

问题描述

我有一个 js 文件,我想在 Jquery 延迟函数之后加载它。事情是我在我的getData函数中引入数据,然后将字符串注入 DOM。之后,js 文件将初始化该代码。这就是我想在我的代码运行后调用 js 文件的原因

我怎样才能做到这一点

下面是我的代码。

jQuery函数声明

function getData(url) {
  return $.ajax({
    url: url,
    method: 'GET',
    headers: {
      Accept: 'application/json; odata=verbose',
    },
  })
}

函数调用

getData(url).then(function(data){

});

现在我想在then函数完成后调用 jQuery 文件。

<script src="file.js"></script>

标签: javascriptjqueryjquery-deferred

解决方案


您需要使用 Promise/await 方式,因为您需要在执行某些操作后编写 js 文件,这样您就可以让 js 文件等到您的代码完成,然后将您的新 js 文件写入 body....查看此示例:

/* MEthod used to write js to body script */
function addJsFileToBody(jsSrc)
{
    var script = document.createElement("script");
        script.src = jsSrc;
        document.getElementsByTagName("body")[0].appendChild(script);
}

var promise1 = new Promise(function(resolve, reject) {
  $.ajax({
    url: url,
    method: 'GET',
    headers: {
      Accept: 'application/json; odata=verbose',
    },
    complete: function(data) {
      resolve(data);
    }
  })
});

promise1.then(function(value) {
  addJsFileToBody('file.js');
});

参考和示例: Promiseawait


推荐阅读