Do.js参考

ndoojs使用Do.js做依赖加载(*进行过定制),参见 http://kejun.github.io/Do/。这里对ndoojs里面用到的一些功能进行说明。

1. 定义模块

使用Do.define方法定义一个模块,可以是js或者css类型,可以指定依赖。示例:

Do.define('lightBox-css', {path: '{URL}', type: 'css'});
Do.define('lightBox', {path: '{URL}', type: 'js', requires: ['lightBox-css']});

2. 设置已加载模块

原则上建议所有模块都在Do.js中进行定义,但有些文件默认已加载(如jQuery)则可设置该模块为已加载。示例:

Do.define('jquery', {path: 'js/jquery', type: 'js'});
Do.setLoaded('jquery') //参数可以是数组

3. 为ndoojs标识模块

当某些ndoojs模块默认未载入,需要进行按需加载时可以在Do.js中定义该文件,但需要为ndoojs标识出该模块存在。

(function(){
  var _n;
  this.N = this.ndoo || (this.ndoo = {});
  _n = this.ndoo;

  Do.define('home', {
    path: 'js/example1.js',
    type: 'js'
  });
  // 在NAPP_DEFINE事件触发以后调用setApp标识module
  _n.on('NAPP_DEFINE', function(){
    _n.setApp('home');
  });

  Do.define('example3.block', {
    path: 'js/example3.block.js',
    type: 'js'
  });
  // 在NBLOCK_DEFINE事件触发以后调用setBlock标识block
  _n.on('NBLOCK_DEFINE', function(){
    _n.setBlock('example3.block');
  });

})(this);