2011-10-24 66 views
0

我正在使用xmlhttprequest(和eval)来动态加载脚本。接下来我评估脚本并查看是否有其他脚本需要加载。一路上,如果有任何脚本导致异常,则报告的错误消息指示与eval关联的行号,而不是脚本中的实际错误。同步<script>声明?

another question有人建议我用<script>来取代更好的错误信息。不幸的是,<script>是异步的,我将无法控制加载脚本的顺序(我需要一个onload回调)。

如何在<script>命令


一些更多的信息实现同步行为,以什么我的目标是实现

每个脚本都有它加载其他脚本列表,存储在一个列表,让称它为_toLoad

假设我们有一个脚本“Main.js”,象这样

负荷列表

其中规定一旦加载,文件A.js必须被加载。一旦'A.js'被加载,'B.js'必须被加载。一旦'B.js'被加载,'C.js'必须被加载。一旦'C.js'被加载,'D.js','E.js'和'F.js'必须以任意顺序加载。

我可以使用<script>加载'Main.js',评估它的_toLoad列表并开始加载其他脚本,并按照正确的顺序。但是如果'A.js'有几个脚本也会载入,会发生什么?我希望那些在后台加载,而不是从装载

延迟“B.js”如果“A.js”有像这样的负载名单:

_toLoad = [['A2.js'] , ['B2.js'] , ['C2.js'] , ['D2.js' , 'E2.js' , 'F2.js']]

是我会必须通过并发出<script>报表。当我首先需要一种宽度时,它似乎是一种深度优先方法。

+0

脚本[不能真正被加载同步] [1]。 [1]:http://stackoverflow.com/questions/3248384/document-createelementscript-synchronously – Wayne

+0

我还没有使用它(但)我自己,但[YepNope.js(HTTP:// yepnopejs.com/)可能会有所帮助。我知道它被描述为一个异步加载器,但是它控制脚本执行的时间,因此... – nnnnnn

+1

'