`

Rico 模块加载方式

 
阅读更多
Rico.loadModule('Accordion');


Rico中有一个管理模块依赖的对象
moduleDependencies : {
    Accordion  : ['ricoBehaviors.js','ricoEffects.js','ricoComponents.js'],
    Color      : ['ricoStyles.js'],
    Corner     : ['ricoStyles.js'],
    DragAndDrop: ['ricoStyles.js','ricoEffects.js','ricoDragDrop.js'],
    Effect     : ['ricoEffects.js'],
    Calendar   : ['ricoCalendar.js', 'ricoCalendar.css'],
    Tree       : ['ricoTree.js', 'ricoTree.css'],
    ColorPicker: ['ricoColorPicker.js', 'ricoStyles.js', 'ricoColorPicker.css'],
    CustomMenu : ['ricoMenu.js', 'ricoMenu.css'],
    SimpleGrid : ['+Effect', 'ricoGridCommon.js', 'ricoGrid.css', 'ricoSimpleGrid.js'],
    LiveGridBasic : ['ricoGridCommon.js', 'ricoGrid.css', 'ricoBehaviors.js', 'ricoLiveGrid.js'],
    LiveGrid      : ['+Effect', '+LiveGridBasic', 'ricoLiveGridControls.js'],
    LiveGridMenu  : ['+CustomMenu', 'ricoLiveGridMenu.js'],
    LiveGridAjax  : ['+LiveGrid', 'ricoLiveGridAjax.js'],
    LiveGridJSON  : ['+LiveGridAjax', 'ricoLiveGridJSON.js'],
    LiveGridForms : ['+LiveGridAjax', '+LiveGridMenu', '+Accordion', '+Corner', 'ricoLiveGridForms.js', 'ricoLiveGridForms.css'],
    SpreadSheet   : ['+SimpleGrid', 'ricoSheet.js', 'ricoSheet.css']
  }


每次loadModule模块时,通过内部的include方法加载所需的js或css文档

loadModule
loadModule : function() {
    for (var a=0, length=arguments.length; a<length; a++) {
      var name=arguments[a];
      var dep=this.moduleDependencies[name];
      if (dep) {
        for (var i=0; i<dep.length; i++) {
          if (dep[i].substring(0,1)=='+') {
            this.loadModule(dep[i].slice(1));
          } else {
            this.include(dep[i]);
          }
        }
      } else {
        this.include(name);
      }
    }
  }


include方法
 
include : function(filename) {
    if (this.loadedFiles[filename]) return;
    this.addPreloadMsg('include: '+filename);
    var ext = filename.substr(filename.lastIndexOf('.')+1);
    switch (ext.toLowerCase()) {
      case 'js':
        this.loadedFiles[filename]=filename.substring(0,4)=='rico' ? this.loadRequested : this.loadComplete;
        document.write("<script type='text/javascript' src='"+this.jsDir+filename+"'><\/script>");
        return;
      case 'css':
        var el = document.createElement('link');
        el.type = 'text/css';
        el.rel = 'stylesheet';
        el.href = this.cssDir+filename;
        this.loadedFiles[filename]=this.loadComplete;
        document.getElementsByTagName('head')[0].appendChild(el);
        return;
    }
  }
分享到:
评论

相关推荐

    rico.zip_drop

    "rico.zip_drop"是一个与前端开发相关的压缩包,其中包含了rico库的一些功能模块。 Rico库是一个JavaScript库,它为Web应用程序提供了丰富的用户界面和交互功能。这个特定的压缩包主要关注的是rico的“视觉效果”、...

    一个Ajax调色板代码.rar

    在描述中提到的"Rico框架的调色板对象",就是指Rico库中的一个模块,用于生成和管理颜色选择器。当用户在输入框中输入RGB值时,调色板对象会实时更新并显示相应的颜色,提供即时反馈。 Ajax(异步JavaScript和XML)...

    JS超级名著《Essentials of Javascript》

    它定义了一种模块加载方式,使得模块之间的依赖关系更加清晰。 ### Comparison of JavaScript Frameworks **JavaScript框架**对比主要关注于不同JavaScript框架的特点、优势和应用场景。常见的JavaScript框架包括...

    openlayers资料收集

    OpenLayers 采用了面向对象的编程方式,并借鉴了 Prototype 框架和 Rico 库的部分组件。这样的设计让代码更加模块化,易于扩展和维护。 **2. 动态类型脚本语言** OpenLayers 使用 JavaScript 编写,支持类似于 ...

    Ajax.基础教程资料

    DOJO是一个功能强大的JavaScript框架,支持模块化开发,提供了丰富的UI组件。 **5.4 GWT** Google Web Toolkit(GWT)是一个开发工具包,允许开发者使用Java语言编写前端代码,然后编译成JavaScript。 **5.5 ZK** ...

    10大js框架 javaScript框架

    Prototype还与rico/script.aculo.us等库结合使用,实现了一系列的JavaScript特效。它作为模型视图控制器(MVC)架构的一部分,为JavaScript开发者提供了一个强大的开发环境。Prototype与Ruby on Rails的结合尤其受到...

    16个最流行的JavaScript框架[推荐]

    10. **Archetype** - Archetype通过依赖加载系统自动处理应用程序的启动,确保在正确的时间加载正确的代码,避免错误。它支持多种类型的依赖,并且可以轻松配置依赖URL,适应生产环境需求。 11. **Rico** - Rico是...

    高通7X27平台培训总结

    - **7225与7200**: 在速度上有显著提升,支持SDboot,具备多媒体加速模块。 **3. PM芯片比较** - **PM7500与PM7540**: 封装尺寸从9×9mm减少到了7×7mm,部分管脚进行了调整。 **4. BT芯片** - **BTS4025**: ...

Global site tag (gtag.js) - Google Analytics