作者:Kevinczp | 来源:互联网 | 2023-05-24 13:24
我正在开展一个大型项目,显然我们需要一种延迟加载脚本的方法.
我之前使用过require.js非常好,但问题是在我们连接和缩小文件之后,我们得到了一个1.5M的js文件.
所以我刚刚遇到OcLazyload,它看起来很有前途,但我在网上看到很多使用require和ocLazyLoad的例子,我有点困惑为什么你想要同时使用它们.他们俩都做同样的事吗?
1> Olivier..:
您可以将RequireJS与ocLazyLoad一起使用,但我不推荐它,这是可能的,因为人们要求我这样做,并且很容易集成.您不需要RequireJS,因为ocLazyLoad包含自己的js/css/templates文件加载器,它可以加载任何类型的文件,而不仅仅是角度模块.
如果你想延迟加载Angular模块,你需要一个lib来用Angular注册它们(或者等一下Angular 1.5,你可以这样做).
底线是:你可以将RequireJS与ocLazyLoad一起使用,或者只使用ocLazyLoad(推荐),但你不能只使用RequireJS
谢谢@Oliver,这是一个很好的解释.我也写了一篇关于https://goo.gl/aEUWVt的博客.
2> Adrian Mitev..:
你需要ocLazyLoad和RequireJS,因为你现在处理两个独立的模块概念 - 你的Javascript模块和角度内部模块.
在初始引导之后,angularjs不再允许注册新的模块和组件,如指令和控制器(至少不使用标准方式).
RequireJS仅加载Javascript文件,但它不会在此新代码中注册新的角度模块和组件
ocLazyLoad所做的是允许你使用像RequireJS这样的第三方模块加载器加载你的附加文件,更重要的是 - 它在延迟加载代码中以新的模块和组件的形式注册.
总而言之 - 您可以仅使用RequireJS懒惰加载代码,但不能仅使用RequireJS加载角度模块和组件.需要额外的工作,比如ocLazyLoad执行的工作.
是不是oclazyload自己加载资产?如果你可以使用oclazyload,为什么要使用两者?