在了解完easyui的parser(解析器)之后,接下来就是easyloader(简单载入器)的学习了。

什么是EasyLoader

正如其名字一样easyloader的作用是为了动态的载入组件所需的js文件,这体现了EasyUI作为轻量级框架对性能的合理掌握(能够动态的载入所需组件),只是一般而言非常少使用到easyloader(会给使用者带来一定的难度)。那么使用EasyLoader的场景有哪些呢?

EasyLoader使用场景

  • 出于性能的考虑,不一次性的载入easyui核心js、css文件,而是先展示基础文档结构。
  • 项目仅仅是简单的用到easyui的几个组件,此时能够按需载入该组件的js和css文件。
  • 你须要使用某个组件,可是不知道该组件是否依赖于其它组件(简单的js引用无法达到),使用easyloader能够自己主动载入依赖组件。
  • 你须要把JQuery基础库和自己实现的js结合起来,以达到更好的展示性能。

EasyLoader载入器

简单的了解了什么是easyloader以及其大概的使用场景,接下来看看easyloader的属性、事件和方法。

properties

easyloader有7个属性,详细例如以下表格:

属性名 值类型 描写叙述         默认值
modules object 提前定义模块             无    
locales object 提前定义的语言环境(国际化支持)             无
base string easyui的基础文件夹,必须以"/"结束,当前文件夹但是设置为"./" 依据easyloader.j位置设置
theme string 主题名称,theme文件夹下有多个可供选择的主题,也可自己扩展           default
css boolean 定义载入模块的时候是否载入css样式文件            true
locale string 语言环境名称             null
timeout number 超时时间,单位毫秒            2000

Event

载入器包括两个事件,详细例如以下:

         方法名                參数                   描写叙述信息
     onProgress
               name 一个模块载入成功
     onLoad                name 模块和依赖他的模块载入成功

Method

加载器仅仅有一个方法:load,其參数为module,callback(回调函数),加载特定的模块,当加载的成功的时候调用该回调函数有效的模块參数能够使一个单一的模块名称、存储模块名称的数组、css样式文件、js脚本文件。

EasyLoader使用

接下来我们着眼于easyloader怎样使用,通过上面属性表中的modules,不难猜到这个属性就是easyui定义模块用的。modules本质上来说是一个json格式对象。其形式例如以下:

modules = {
draggable:{
js : "jquery.draggable.js",
css : "pagination.css",
dependencies : ["linkbutton"]
}
};

key值即是定义的模块名称,值又是一个json对象,包括三个属性js、css、dependencies。js就是模块须要导入的js名称,css是该模块的样式,dependencies定义该模块的依赖模块。

上面定义了一个模块,接下来谈谈该怎样加入�我们自己定义的模块,而且通过easyloader进行载入。

第一步:我们先要打开easyloader.js文件,详细例如以下图:

阅读代码(压缩过)我们能够简单的看出来easyui载入的时候究竟载入了哪些模块,“_1”是easyui已经定义好的模块.以及各个模块之间的依赖关系。这样,我们通过改动easyloader.js的代码就能够有选择性的载入所需的模块,提高easyui的性能(普通情况下不建议)。

那么我们怎样简单的定义下自己的模块呢? 我们须要改造一下easyload.js,我们将easyloader.js代码中的全部_1变量替换为easyloader.modules,只是最后一个"modules:_1"的引用不要改动。

第二步,在easyui原有的模块基础上,我们扩展它,添�自己的模块。

easyloader.modules = $.extend({},{
"test":{
js:'test.js' css:'test.css' }
},easyloader.modules);

上面的代码在原有easyloader.modules的基础上在添加�了一个test模块而且定义了模块的js和css。这样我们添加�的第一个自己定义模块就加入�完毕了。使用的方式和easyloader载入其它模块一样。

Tips:我们自定义的js和css文件必须是绝对路径。

easyloader.load('mymodule', function(){
//do something
});

EasyUI基础入门之Easyloader(载入器)的更多相关文章

  1. EasyUI基础入门之Parser(解析器)

    前言 JQuery EasyUI提供的组件包含功能强大的DataGrid,TreeGrid.面板.下拉组合等.用户能够组合使用这些组件,也能够单独使用当中一个.(使用的形式是以插件的方式提供的) Ea ...

  2. EasyUI基础入门之Resiable(可缩放)

    easyui的base插件学习已经进行到Resizable(可缩放)了.照旧看看easyui官网的API. Resiable 正如其字面意思一样(可伸缩),resiable主要是将一些html元素扩展 ...

  3. easyUI基础入门

    头部需要引人文件:<!DOCTYPE html><html><head> <meta charset="utf-8"> <ti ...

  4. EasyUI基础入门之Droppable(可投掷)

    怎么说呢Droppable这个单词究竟是什么意思,准确来说easyui作者究竟要表达什么意思,还是不大好拿捏的.只是没关系,没有必要纠结与这些细枝末节的东西,依据官网的demo效果,就简单的将之定义为 ...

  5. EasyUI基础入门之Pagination(分页)

    前言 对于一些企业级的应用来说(非站点),页面上最为基本的内容也就是表格和form了.对于类似于ERP这类系统来说数据记录比較大,前端表格展示的时候必需得实现分页功能了.恰巧EasyUI就提供了分页组 ...

  6. (一)jQuery EasyUI 的EasyLoader载入原理

    1.第一次看了官网的demo.引用的是EasyLoader.js文件,而不是引用jquery.easyui.min.js文件,我就有疑问了,百度一下. jQuery EasyUI是一款基于JQuery ...

  7. ECMAScript 6.0基础入门教程

    ECMAScript 6.0基础入门教程 转:https://blog.csdn.net/hexinyu_1022/article/details/80778727 https://blog.csdn ...

  8. js学习笔记:webpack基础入门(一)

    之前听说过webpack,今天想正式的接触一下,先跟着webpack的官方用户指南走: 在这里有: 如何安装webpack 如何使用webpack 如何使用loader 如何使用webpack的开发者 ...

  9. 从零3D基础入门XNA 4.0(2)——模型和BasicEffect

    [题外话] 上一篇文章介绍了3D开发基础与XNA开发程序的整体结构,以及使用Model类的Draw方法将模型绘制到屏幕上.本文接着上一篇文章继续,介绍XNA中模型的结构.BasicEffect的使用以 ...

随机推荐

  1. [原]Unity3D深入浅出 - 物理引擎之刚体部件(Rigidbody)

    在虚拟世界中,任何物体都是没有活力的,要想变的真实,Rigidbody是必不可少的组件,下面介绍Rigidbody的各个属性: Mass:质量 Drag:阻力,对象在运动时遇到的空气阻力,0表示没有空 ...

  2. BZOJ_3172_[TJOI2013]_单词_(AC自动机)

    描述 http://www.lydsy.com/JudgeOnline/problem.php?id=3172 \(n\)个单词组成一篇文章,求每个单词在文章中出现的次数. 分析 这道题很像BZOJ_ ...

  3. apache开源项目--lume

    lume 是一个分布式.可靠和高可用的服务,用于收集.聚合以及移动大量日志数据,使用一个简单灵活的架构,就流数据模型.这是一个可靠.容错的服务.

  4. Android 自动换行流式布局的RadioGroup

    效果图 用法 使用FlowRadioGroup代替RadioGroup 代码 import android.content.Context; import android.util.Attribute ...

  5. 【转】Android开发调试工具ADB的使用

    原文网址:http://www.cnblogs.com/meil/archive/2012/05/24/2516055.html ADB(Android Debug Bridge)是Android S ...

  6. 发布代码小助手V2.1发布了——Code2HTML工具

    设计起源: 新浪博客似乎没有插入代码的功能,所以不得不用打空格的方法格式化代码.而且没法显示行号. 描述: 发布代码小助手用python和Tkinter开发,可以在任何常见操作系统上运行.主要用于在不 ...

  7. C# Debug与release之间的一些小差异

    如果代码声明了一个变量,后面却没有用到, 生成方式debug模式下,这个变量的值存在,调试过程中是可以看到的, 生成方式release模式下,编译时经过了优化,这个值在调试过程就看不到了

  8. ExtJs 5.0需要注意的问题

    1.在网上查找到的一些例子当中,存在new Ext.grid.ColumnModel()这样的操作,在5.0当中这是不允许的,在5.0当中这个已经被设置为私有方法,不允许用户调用,在5.0中我们不需要 ...

  9. 大规模Hadoop集群实践:腾讯分布式数据仓库(TDW)

    TDW 是腾讯最大的离线数据处理平台.本文主要从需求.挑战.方案和未来计划等方面,介绍了TDW在建设单个大规模集群中采取的 JobTracker 分散化和 NameNode 高可用两个优化方案. TD ...

  10. NOIP2010 乌龟棋

    2乌龟棋 题目背景 小明过生日的时候,爸爸送给他一副乌龟棋当作礼物. 题目描述 乌龟棋的棋盘是一行N个格子,每个格子上一个分数(非负整数).棋盘第1格是唯一的起点,第N格是终点,游戏要求玩家控制一个乌 ...