LazyLoad.js和require.js之间的区别

And*_*bie 3 javascript requirejs jquery-lazyload

我目前正在编写一个带有require.js的示例应用程序,现在找到了LazyLoad.js.

Require.js

require(["modul1", "modul2"],function(Modul1, Modul2){
Run Code Online (Sandbox Code Playgroud)

LazyLoad.js

LazyLoad.js(["modul1", "modul2"],function(Modul1, Modul2){
Run Code Online (Sandbox Code Playgroud)

这两者之间的区别在哪里?

对我来说,能够加载模块异步并且依赖管理应该自动完成是很重要的.

exp*_*nit 6

如果您想要自动依赖关系管理,那么LazyLoad是不合适的.如果您只需要一个运行时加载器并且不关心以下内容,则LazyLoad是合适的:

  1. 定义模块
  2. 跟踪依赖关系.来自lazyload github(强调我的):

    当您需要一个小型,快速,安全的动态JS或CSS加载器时,请使用LazyLoad,但不需要依赖关系管理的开销或更大的脚本加载器提供的其他额外功能.

  3. 构建时优化的选项
看起来LazyLoad只是直接加载URL而不检查路径映射或者是否已加载该模块.所以我认为你的第二个代码片段可能如下所示:

LazyLoad.js(["some/path/modul1.js", "some/path/modul2.js"],function(Modul1, Modul2){
Run Code Online (Sandbox Code Playgroud)

而RequireJS会让你做这样的事情:

   require.config({
       paths: {
           modul1: 'libs/module1/blah.1.3.3-min',
           modul2: 'libs/module2/foo.2.7.2-min',
       }
   });

   require(["modul1", "modul2"],function(Modul1, Modul2){
Run Code Online (Sandbox Code Playgroud)

而且还定义垫片的文件需要这些模块之前加载内容.