JavaScript文件加载顺序和依赖关系管理

Jas*_*zek 7 javascript

只是想知道这个......

我有几个单独的javascript文件,它们都包含基于模块模式的代码.一些模块将其他一些模块作为依赖项.如果我知道在加载页面之前不会在HTML上调用任何代码,那么加载文件的顺序是否仍然很重要?

模块代码是否位于即时功能内,足以触发已经加载其他模块的要求?

如果需要,我准备调查RequireJS库,但只是想知道我的目标是否正常.

Ray*_*nos 8

如果可能的话,设置依赖项,以便在加载javascript文件时加载和设置所有模块(即使用自执行函数).

然后.init.ready块中的所有模块上调用或等效函数.这样,您可以在加载所有文件后显式调用任何需要依赖的功能.

一个例子:

foo.js
(function() { 
    function initFoo() { ... }
    ...
    window.namespace.foo = {
         init: initFoo
    }
}());

bar.js
(function() { 
    function initBar() { ... }
    ...
    window.namespace.bar = {
         bar: initBar
    }
}());

main.js
(function() {
     $.ready(function() {
          window.namespace.foo.init();
          window.namespace.bar.bar(); // dependancies on foo
     });

}());
Run Code Online (Sandbox Code Playgroud)

任何没有依赖项的代码都可以在foo.js&的闭包中执行,bar.js并且所有文件加载后,可以通过init函数调用任何相关代码.ready.