推迟动态添加Javascript

时间:2013-09-11 13:48:26

标签: javascript html dom

我需要在页面加载后动态加载一些Javascript。

这样的事情:

  • 页面加载

  • 页面添加了带有src = "file1.js"

  • 的脚本元素
  • 页面添加了带有src = "file2.js"

  • 的脚本元素

file2.js依赖file1.js - 它会为file1.js

中定义的对象添加属性

问题是file2.js首先加载(因为它更小),并且因为它的依赖性不存在而立即引发错误。

有没有办法让我推迟评估/执行这些新脚本,直到它们全部加载完毕。 (实际上有两个以上的脚本)

如果我只是将这些脚本嵌入到通常在创作HTML中的页面中,那么浏览器似乎会加载所有脚本,然后对它们进行评估。但它的行为方式不同,因为我正在动态添加脚本元素。

由于

3 个答案:

答案 0 :(得分:4)

有一个名为RequireJS的库可以处理这种情况,并处理你从未意识到的每一个问题 - http://requirejs.org/docs/start.html

答案 1 :(得分:1)

你不能把文件的内容包装在函数中,并在一切都加载后调用它们吗?

答案 2 :(得分:1)

给你两个建议:

  1. 看看http://requirejs.org/它解决了这个问题 他人。
  2. 或者,滚动您自己的简单js加载器功能。这将是一个功能 使用ajax加载脚本,然后在完成后调用回调。 以嵌套的方式调用此加载器函数,以便加载 脚本顺序正确。