`

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的使用文档

    AJAX 允许在不重新加载整个页面的情况下与服务器进行数据交换,从而显著提高了应用程序的响应速度和性能。 Rico 是一款功能强大的 JavaScript 库,它提供了一系列工具和组件来简化 AJAX 的实现过程。本文将详细介绍...

    rico2.0组件库和例子

    Rico2.0组件库是一款基于JavaScript开发的前端UI组件集合,主要针对Web开发者提供丰富的交互功能和视觉效果。这个库包含了一系列实用的组件,如可调整大小的表格(resizable table)和带有动画效果的公告通知,这些...

    rico.zip_Rico_javascript

    Rico是一个功能丰富的JavaScript库,特别适用于前端开发者,它提供了许多实用的功能,旨在简化Web开发工作,提升用户体验。这个库的核心在于它的名字“Rico”,可能是取自于“rich”和“JavaScript”的组合,意在...

    RICO 1.1 附 prototype 1.4

    做Ajax的朋友恐怕都听说过rico,这个是新出的 rico 1.1.0稳定版本,rico用到了prototype库,因此压缩包内还附带了prototype 1.4,另外还有RicoAjaxEngine.pdf ,可惜是英文的。 网址是:...

    rico.js&prototype

    rico.js version1.1.2 不能使用 1.7prototype.js,

    rico.zip_drop

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

    Rico ajax (java)

    **Ajax(Asynchronous JavaScript and XML)技术是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。在Java环境中,实现Ajax交互通常会涉及到服务器端的处理以及客户端的JavaScript操作。本资源“Rico ...

    用Rico LiveGrid小部件创建数据集导航

    从开始构建动态Web应用程序起,开发人员一直都是使用传统分页技术。每当需要显示大量的数据时,都要使用分页技术来每次显示一部分...本文介绍了如何使用Rico LiveGrid小部件轻松地在Web应用程序中添加Ajax风格的导航。

    rico.js

    AJAX第三方库,需配合prototype.js使用,本人资源中有。

    Cerro Rico terrain_terrain_

    本文将详细探讨“Cerro Rico terrain_terrain_”这一主题,结合提供的文件,我们主要关注Cerro Rico山的地形数据。 Cerro Rico,位于玻利维亚的波托西市,是一座历史悠久且富饶的银矿山。这里的地形数据是研究该...

    DOM工具包 rico2 scriptaculous

    DOM工具包,如rico2和scriptaculous,是JavaScript库,专为简化Web开发者对文档对象模型(Document Object Model)的操作而设计。DOM是HTML和XML文档的一种编程接口,允许程序和脚本动态更新、添加和删除页面内容。...

    AM437X开发板 Rico Board

    Rico Board是深圳市米尔科技有限公司推出的一款以TI AM437X系列处理器为核心的嵌入式开发板,即AM437X开发板。AM437X系列处理器基于高性能ARM Cortex-A9 32位RISC为核心,运行速度最高达1GHz,并提供3D图形加速和...

    开源框架Rico(ajax框架)

    Rico是一个用来编写基于AJAX技术网络应用程序的开源框架。它包括了简单拖放(drag-and-drop )功能,并且可以编程实现HTML元素的操作。 Rico为AJAX请求句柄提供了非常简单的注册接口,还可以将HTML元素和JavaScript...

    rico-demo:带有 rico 的演示应用程序

    mysql&gt; CREATE USER 'rico'@'localhost' IDENTIFIED BY 'rico'; mysql&gt; CREATE DATABASE rico; mysql&gt; GRANT ALL PRIVILEGES ON rico . * TO 'rico'@'localhost'; mysql&gt; FLUSH PRIVILEGES; 设置 xu@calypso:~

    rico nasty 高清壁纸 新标签页 热门明星 主题-crx插件

    每次打开新标签时都会获得rico nasty不同的高清壁纸。这个新主题除此以外还包括天气,时间,记事本,时钟等其他你想要的强大功能。 以下是您将获得的其他功能列表: - 待办事项清单 - 设置收藏你的最爱壁纸 - ...

    视频编解码学习之二:编解码框架 - Mr.Rico - 博客园.pdf

    在本文档中,Mr.Rico详细讲解了编解码框架的多个关键知识点,包括码流结构、帧类型、条带、宏块、预测编码、运动估计、变换编码、量化等方面。 首先,码流结构是视频数据的二进制表示形式,包含了视频图像序列的...

    FiveThirtyEight Puerto Rico Media Dataset-数据集

    767 mediacloud_states.csv google_trends.csv mediacloud_hurricanes.csv mediacloud_top_online_news.csv mediacloud_trump.csv README.md tv_hurricanes.csv tv_hurricanes_by_network.csv ...

    公文夹:Rico的公文包

    【Rico的公文包——一个CSS艺术的展示】 在"Rico的公文包"这个作品集中,我们可以深入了解到CSS(层叠样式表)这一关键的网页设计技术的运用和创新。CSS作为Web开发中的核心组成部分,它赋予了HTML元素以丰富的视觉...

    puerto_rico_facts_cli

    :Puerto_Rico: 波多黎各事实 :Puerto_Rico: 欢迎使用您的新宝石! 在此目录中,您将找到能够将Ruby库打包为gem所需的文件。 将您的Ruby代码放在文件lib/puerto_rico_facts 。 要试验该代码,请运行bin/console进行...

    puerto-rico-latest-free.shp.zip

    标题中的“puerto-rico-latest-free.shp.zip”表明这是一个关于波多黎各地理信息的数据包,且以shp格式存储。shp是ESRI Shapefile的缩写,是一种广泛用于地理信息系统(GIS)的矢量数据格式,能够存储点、线、面等...

Global site tag (gtag.js) - Google Analytics