延迟加载样板模块(Lazy loading boilerplate modules)

2019-09-23 06:40发布

在boilerplatejs它看起来像模块,预装

(参照下面的代码)

return [
            require('./baseModule/module'),
            require('./sampleModule2/module'),
            require('./customerModule/module'),
            require('./orderSearchModule/module'),
            require('./orderListModule/module'),
            require('./mainMenuModule/module')
        ];

是什么在这方面的影响,当涉及到大规模的网络应用程序(模块重Web应用程序)。 有没有办法在boilerplatejs延迟加载模块?

Answer 1:

Java的脚本有机制没有反射式加载的东西。 需要加载任何模块在某处被注册。 这就是为什么模块(子上下文)加载如下:

appContext.loadChildContexts(moduleContexts);

(在SRC / application.js中)

但是,你有上面的代码是关于requirejs AMD模块。 这基本上是不同的JS脚本(模块每个代表代码)的进口。 随着requireJS AMD,脚本(源代码)不懒加载,而是预装。 因为你的应用程序源代码这是有意义的,应在浏览器中执行可用。 在另一方面,当你做JS优化,无论如何,我们创建一个包含所有源代码一个脚本。 那么就没有具有单独的脚本文件,或源代码的迟缓装载的含义。

但是,延迟加载,应适用于行为(不加载代码)。 这就是为什么UI组件(ViewTemplate)仅在“激活()”方法创建的。 这些仅仅是当用户为它造就的。 这是行为的延迟加载,所以应用渲染时间较少。

    this.activate = function(parent, params) {
        // if panel is not created, lets create it and initiate bindings
        if (!panel) {
            panel = new Boiler.ViewTemplate(parent, template, nls);
            ...
        }
        vm.initialize(params.name);
        panel.show();
    }


文章来源: Lazy loading boilerplate modules