加载 JavaScript 取决于以前异步加载的 JavaScript
Load JavaScript depending on previously asynchronously loaded JavaScript
<script src="script1.js" async></script>
<script src="script2.js"></script>
script2.js
取决于script1.js
。由于执行script1.js
时script2.js
未完全加载,因此它不起作用。如何解决这个问题?
编辑:我无法删除async
属性,我只能修改script2.js
的内容。
如果你的第一个脚本必须是异步的,最好把第二个脚本作为异步。
一个天真的解决方案是定期查找第一个脚本可能正在导出的全局变量。
假设 script1 script1export
附加到窗口,您可以执行以下操作:
// Regularly check test, and once it is true, call callback.
function waitFor(test, callback, checksPerSec){
if(test()){
callback();
} else {
checksPerSec = checksPerSec || 10;
setTimeout(function(){
waitFor(test, callback, checksPerSec);
}, 1000 / checksPerSec);
}
}
waitFor(function(){
return "script1export" in window;
}, function(){
// script 2 content
});
这并不理想,但它会起作用。
// script 1
if (!window.myObj1){
window.myObj1 = script1Obj1;
}
// script 2
if (!window.myObj2){
window.myObj2 = script2Obj2;
}
// script 1 & script 2
if (window.myObj1 && window.myObj2){
// run...
}
相关文章:
- ADF:有条件地加载javascript资源
- .load()函数赢得't加载javascript
- Gmaps搜索和kmz加载javascript
- 页面显示前加载Javascript警报
- 依赖于缓慢加载javascript的UI
- 在外部JS执行后加载JavaScript
- 在WordPress站点中加载jquery.js后加载javascript代码
- 图像未加载javascript、html、angular、imdb-api
- 加载 JavaScript 取决于以前异步加载的 JavaScript
- 预加载Javascript音频以在脚本中播放
- 无法加载Javascript错误XMLHttpRequest
- AJAX JSF请求后重新加载Javascript
- Rails Assets Pipeline从控制器和方法加载JavaScript
- 使用Require.js按照依赖关系的顺序加载JavaScript
- 正在等待加载文件(加载JavaScript)
- 仅在需要时加载javascript函数
- 直接导航到chrome中的页面时未加载Javascript脚本
- 异步加载Javascript
- IE7 未加载 JavaScript 文件
- 从框架中的函数异步加载 Javascript