0

所以,我必须在主页中加载这些

jQuery.js
jQueryMobile.css
jQueryMobile.js
mainScript.js

但是,如果用户从其他任何地方输入,我需要动态加载它们。所以我有

脚本检查.js

if scripts not present
    //create array of elements containing above files
    scriptsArray.forEach do |script|
        head.append(script)
    end forEach
end if

我的问题是,有没有办法使加载成为同步操作,等待每个脚本加载并在加载下一个脚本之前被解释?

4

2 回答 2

1

您可以将每个脚本元素的 onload 处理程序设置为加载下一个脚本的函数:

var counter = 0
scriptpaths = [...]
function loadnextscript(){
    var el = document.createElement("script");

    el.onload = loadnextscript;
    el.src = scriptpaths[counter];

    document.head.appendChild(el);

    counter++;
}

然后,您可以使用以下方法调用它:

if (scriptsnotpresent) {
    loadnextscript();
}
于 2013-07-10T22:22:07.053 回答
-1

看看这个:https ://stackoverflow.com/a/2880147/1391624

它使用 createXMLHTTPObject() 打开和发送同步请求。

于 2013-07-10T22:18:45.157 回答