easyloader [easyui_1.4.2] 分析源码,妙手偶得之

用easyui很久了,但是很少去看源码. 有解决不了的问题就去百度...

今日发现,easyui的源码不难懂. 而且结合 easyloader 可以非常方便的逐个研究easyui的组件.

但是, easyloader 的官方API介绍非常简略.

easyloader.base = ‘../‘; // 设置 easyui 基础目录
easyloader.load(‘messager‘, function(){ // 加载指定模块
    $.messager.alert(‘Title‘, ‘load ok‘);
});

如上:

(1) easyloader.base ,应该指向哪个目录?

(2) easyloader.load(‘messager‘, ...  不需要提前引入css文件吗?

API里没有说明这些问题. 没办法,只能去看源码了.

看过源码之后, 可以知道:

(1) easyloader.base -> 应该指向一个root目录, 此root目录必须是包含plugins, themes, locale ,其实就是从官网下载的easyui某个版本解压后的根目录. (源码中明确设定,加载css从themes目录获取, 加载js从plugins目录获取...)

(2) easyloader.load(‘messager‘, function(){}); 也可以写成 using(‘messager‘,function(){}) . 这种写法是采用loadModule()方式加载文件的. 会加载module的js和css以及依赖module的js和css.

easyloader 的源码比较简单. 分析源码时,我是采用妙味课堂杜鹏老师分析jquery的方法来的. 分析如下,比较简陋,原因是不难,没什么可写的.

* easyloader [easyui_1.4.2]
	|- 源码 {426} 行.

(function(){
	modules: {} 	//(15, 199)
	locales: {} 	//(201, 224)
	queues:
	loadJs(): 		//(228, 244)
	runJs(): 		//()
	loadCss(): 		//
	loadSingle(): 	//(267, 307)
	loadModule(): 	//(309, 371)
	easyloader: { 	//(373, 403)
		modules:
		locales:
		base:
		theme:
		css:
		locale:
		timeout:
		load:
		onProgress:
		onLoad:
	}

	window.using = easyloader.load; 	//(415, )

})();

  

写个小例子.

jquery-easyui-1.4.2

  |- locale

  |- my

    |- demo1

      |- test.html

  |- plugins

  |- themes

...

test.html

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Document</title>
	<script type="text/javascript" src="../../jquery.min.js"></script>
	<script type="text/javascript" src="../../easyloader.js"></script>
	<script type="text/javascript">
		//
		easyloader.base = "../../";
		using(‘messager‘, function(){
			$.messager.alert(‘系统提示‘,‘Hello World!‘,‘info‘);
		});
	</script>
</head>
<body>

</body>
</html>

jquery和easyloader本身必须引入.其他的js和css就不用引入了.

easyloader只是加载easyui量声定制的. 用来作研究还可以. 万能加载还是得学习使用 require.js 和 sea.js

时间: 2024-12-28 20:19:14

easyloader [easyui_1.4.2] 分析源码,妙手偶得之的相关文章

java分析源码-ReentrantLock

一.前言 ReentrantLock表示下面具体分析ReentrantLock源码. 二.ReentrantLock数据结构 ReentrantLock的底层是借助AbstractQueuedSynchronizer实现,所以其数据结构依附于AbstractQueuedSynchronizer的数据结构,关于AQS的数据结构,在前一篇已经介绍过,不再累赘. 三.ReentrantLock源码分析 3.1 类的继承关系 public class ReentrantLock implements L

tensorflow运行原理分析(源码)

tensorflow运行原理分析(源码)  https://pan.baidu.com/s/1GJzQg0QgS93rfsqtIMURSA 原文地址:https://www.cnblogs.com/liuzhongfeng/p/8778422.html

Struts流程分析+源码分析

1.初始化工作 读取配置---转换器-----读取插件 当struts-config.xml配置文件加载到内存,则会创建两个map:ActionConfigs,FromBeans.这两个map都交由ModuleConfig对象管理 a.ActionConfigs的Map装载每个Action配置信息---ActionMapping b.名为FromBeans的map装载FormBean配置信息---FormBeanConfig 接收请求ActionServlet的doPost方法进行处理,调用pr

Servlet-Cookie源码分析 源码环境:Tomcat8

最近在学习servlet的一些实现细节,阅读了Cookie的源码. Cookie本质上是服务器发送给客户端(主要是浏览器)的一个会话临时数据. 其源码注释文档的说明: Creates a cookie, a small amount of information sent by a servlet to a Web browser, saved by the browser, and later sent back to the server. A cookie's value can uniq

PC微信(WeChat)电脑端多开分析+源码

0x00 前言 不知道大家有没有多个微信号,我反正有一两三个. 现在电脑端微信使用频率也比较高,主要用于大文件传输,或者手机电脑文件互传等等,除了不能收红包和看朋友圈,貌似电脑端没其他毛病. 哦,还有个毛病,只能开一个微信,只能开一个,开一个,一个- 不管这些有的没的,今天的主题是,怎么样在电脑上开多个微信客户端! 0x01 分析 了解过单实例的同学,应该都知道大概是怎么实现的单开. 简单说下,大都通过判断Mutex.Event.File等等是否已经存在,存在则退出当前开启进程(说明已经有一个进

snownlp情感分析源码解析

最近发现了snownlp这个库,这个类库是专门针对中文文本进行文本挖掘的. 主要功能: 中文分词(Character-Based Generative Model) 词性标注(TnT 3-gram 隐马) 情感分析(现在训练数据主要是买卖东西时的评价,所以对其他的一些可能效果不是很好,待解决) 文本分类(Naive Bayes) 转换成拼音(Trie树实现的最大匹配) 繁体转简体(Trie树实现的最大匹配) 提取文本关键词(TextRank算法) 提取文本摘要(TextRank算法) tf,id

手撕ArrayList底层,透彻分析源码

ArrayList概述 Hello大家好,今天就来介绍一下ArrayList,说到ArrayList,很多人都知道它的底层是使用数组实现的,线程不安全的,说到它的特点,都会说查找快,增删慢,因为面试题大家都是这么背过来的.今天就来说说它的底层源码吧. ArrayList更准确的说是动态数组去实现的,这里使用动态两字,是为了能够充分体现它的特点. 再者就是ArrayList不是线程安全的,所以效率比较高,但是否这个是绝对的呢?答案是否定的 . ArrayList底层源码 public class

Spring源码分析——源码分析环境搭建

1.在Windows上安装Gradle gradle工具类似于maven,用于项目的构建,此处主要用于构建spring源码,以便我们将spring源码导入eclipse. 开发环境 Java:JDK8(必须是JDK或JRE7以上,使用java -version查看当前电脑java版本) 操作系统:Windows 安装步骤 下载最新的Gradle压缩包:Gradle官网:https://gradle.org/,当前最新版本下载地址:https://gradle.org/releases/,下载bi

09课第3节u-boot分析源码第1阶段

一般来说,uboot会干这几件事; 1:  关开门狗 2:初开始时钟,PLL倍频.上电的时候,是以XTAL的12M运行的运行的,然后你要提高频率,三星2440能以最大400MHZ运行 3:初开始化内存,SDRAM或DDR(2440不支持DDR ,ARM11可以): 4:从NANDfalsh里面把内核读出来,放到SDRAM里面去,然后调转到SDRAM运行; uboot放到SDRAM哪里呢?这个是链接脚本决定的; 比如现在我放是的链接地址是0x33f80000 ; 那什么又是链接地址,就是程序运行时