这是我的问题 - 我需要使用 jQuery.getScript() 动态下载多个脚本并执行某些JavaScript加载所有脚本后的代码,所以我的计划是做这样的事情:
function GetScripts(scripts, callback)
{
var len = scripts.length
for (var i in scripts)
{
jQuery.getScript(scripts[i], function()
{
len --;
// executing callback function if this is the last script that loaded
if (len == 0)
callback()
})
}
}
只有当我们假设每个脚本的 script.onload 事件触发并按顺序同步执行时,这才会可靠地工作,因此永远不会出现两个或多个事件处理程序通过 (len == 0) 检查并执行的情况回调方法。
所以我的问题 - 这个假设是否正确,如果不正确,实现我想要做的事情的方法是什么?
不,JavaScript 不是多线程的。它是事件驱动的,您将看到事件按顺序触发的假设(假设它们按顺序加载)。您当前的实现似乎是正确的。我相信 jQuery 的.getScript()
注入一个新的<script>
标签,这也应该强制它们以正确的顺序加载。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)