所以这个问题是我最近问的另一个问题的一个分支,这更像是一个好奇心。
我的另一个问题涉及在外部 js 库中动态加载。在我的示例中,我使用 .getScript() 导入了 jQuery 模板,然后是 Knockout.js。每次完成加载后,我都会发出警报,以确保它们正确加载。
这是我使用的大致代码(似乎在 jsFiddle 上“按顺序”工作,所以它以前可能是我的代码。但问题仍然存在。):
$.getScript("https://raw.github.com/jquery/jquery-tmpl/master/jquery.tmpl.js", function(){ alert('tmpl finished loading!'); });
$.getScript("http://cloud.github.com/downloads/SteveSanderson/knockout/knockout-2.2.0.js", function(){ alert('Knockout finished loading!'); });
当我加载页面时,我发现 Knockout 的警报在 tmpl 库之前触发,即使它列在第二位。
我的假设是它们会以队列方式同步加载,等待前一个完成后再加载下一个。看来情况并非如此。
所以我要求验证这个假设,并解释为什么会/不是这样。我还想知道是否有另一种[更好的]方法来排队脚本加载,这样我就不会因为依赖未加载的脚本而遇到未定义的问题。