加载依赖于加载到页面的其他方法的脚本

时间:2016-05-22 05:30:12

标签: javascript ajax

我有一个网站,有时他的ajax请求会返回一些内联脚本(javascript),这些脚本依赖于页面初始请求中加载的方法。例如,考虑向用户弹出消息的方法,以及使用此方法的ajax请求。

我的初始页面请求异步加载这些脚本,因此ajax请求有可能在主脚本加载完成之前返回响应,并且方法'notify'尚未加载,有没有办法等待或检查是否这个完成加载?我以为使用$(window).load(),但我想这只会触发一次。

1 个答案:

答案 0 :(得分:0)

最简单的方法 - 在所有异步加载的脚本中执行某些操作:

(function() {
function myModuleRun() {
 //do what module does
}

if (typeof window.myMainScriptLoaded === 'function') {
    window.myModuleLoaded(myModuleRun);
} else {
   window.loadedQueue = window.loadedQueue || [];
   window.loadedQueue.push(myModuleRun)
}
})();

在主脚本中:

window.myModuleLoaded(module) {
  // do what you want to do when module loaded;
}

// use "for" loop, if you need to support older browsers.
window.loadedQueue.forEach(window.myModuleLoaded);