我正在加载两个 JS 文件,一个包含许多插件,包括 Jquery。'ready()' JQuery 函数在第二个文件中。
代码:
function downloadJSAtOnload() {
var element = document.createElement("script");
element.src ='<%= deferJsAll %>';
document.body.appendChild(element);
// second JS file load with isReady goes here
}
// Check for browser support of event handling capability
if (window.addEventListener)
window.addEventListener("load", downloadJSAtOnload, false);
else if (window.attachEvent)
window.attachEvent("onload", downloadJSAtOnload);
else window.onload = downloadJSAtOnload;
您可以看到我何时还加载了第二个文件(请参阅代码中的注释)。
问题是我无法控制执行顺序,即便如此,'ready()' 在加载 JQuery 之前运行,我得到一个错误。是否可以选择使用延迟加载并确保首先加载 Jquery 文件,然后执行第二个文件(具有 ready() 函数的那个)?
我正在使用“<%= deferJsAll %>”,因为我正在决定从 CDN、gzip 或纯文本 JS 文件提供哪个文件。
进展:我想把:
var elementApp = document.createElement("script");
elementApp.src = 'js/app.js';
document.body.appendChild(elementApp);
在第一个文档的末尾。所以当第一个文档完成加载后,它会将第二个依赖的 JS 代码嵌入到文档的正文中。你认为这是个好主意吗?