我正在从事一个大型的Angluar项目,显然我们需要一种方法来延迟加载脚本。

我之前使用过require.js,效果很好,但是问题是,在连接并缩小文件后,我们得到了150万个js文件。

因此,我刚刚遇到了OcLazyload,它看起来很有希望,但是我在网络上看到了很多同时使用require和ocLazyLoad的示例,对于为什么要同时使用这两者,我有些困惑。他们不是都在做同一件事吗?

最佳答案

您需要ocLazyLoad和RequireJS,因为现在您要处理两个独立的模块概念-javascript模块和angular内部模块。

初始引导后,angularjs不再允许注册新模块和组件,例如指令和 Controller (至少不使用标准方式)。

RequireJS仅加载javascript文件,但未在此新代码中注册新的angular模块和组件

ocLazyLoad的作用是允许您使用诸如RequireJS之类的第三方模块加载器来加载其他文件,更重要的是,它在延迟加载的代码中按 Angular 注册了新模块和组件。

总结-您可以仅使用RequireJS来延迟加载代码,但是不能仅使用RequireJS来加载 Angular 模块和组件。需要额外的工作,例如ocLazyLoad执行的工作。

10-05 22:11