EasyUI学习总结(三)——easyloader源码分析(转载)
声明:这一篇文章是转载过来的,转载地址忘记了,原作者如果看到了,希望能够告知一声,我好加上去!
easyloader模块是用来加载jquery easyui的js和css文件的,而且它可以分析模块的依赖关系,先加载依赖项。模块加载好了会调用parse模块来解析页面。把class是easyui开头的标签都转化成easyui的控件。
先看Demo1例子,再分析源代码。
<!DOCTYPE html>
<html>
<head>
<title>easyloader范例</title>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<!-- 引入JQuery -->
<script type="text/javascript" src="jquery-easyui-1.4.1/jquery.min.js"></script>
<!-- 引入easyloader.js -->
<script type="text/javascript" src="jquery-easyui-1.4.1/easyloader.js"></script>
</head> <body>
<div class="easyui-panel" title="Demo1" fit="false"
collapsible="true" minimizable="true" maximizable="true" closable="true" style="width:100%; height: 200px;" >
easyloader会自动解析这个div,因为class属性中带有easyui开头的类!
</div>
</body>
</html>
运行结果如下所示:
aaarticlea/png;base64,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" alt="" />
easyloader源码分析
/**
* easyloader - jQuery EasyUI
*
* Licensed under the GPL:
* http://www.gnu.org/licenses/gpl.txt
*
* Copyright 2010 stworthy [ stworthy@gmail.com ]
*
*/
(function(){
// 模块文件定义
var modules = {
draggable:{
js:'jquery.draggable.js'
},
droppable:{
js:'jquery.droppable.js'
},
resizable:{
js:'jquery.resizable.js'
},
linkbutton:{
js:'jquery.linkbutton.js',
css:'linkbutton.css'
},
pagination:{
js:'jquery.pagination.js',
css:'pagination.css',
dependencies:['linkbutton']
},
datagrid:{
js:'jquery.datagrid.js',
css:'datagrid.css',
dependencies:['panel','resizable','linkbutton','pagination']
},
treegrid:{
js:'jquery.treegrid.js',
css:'tree.css',
dependencies:['datagrid']
},
panel: {
js:'jquery.panel.js',
css:'panel.css'
},
window:{
js:'jquery.window.js',
css:'window.css',
dependencies:['resizable','draggable','panel']
},
dialog:{
js:'jquery.dialog.js',
css:'dialog.css',
dependencies:['linkbutton','window']
},
messager:{
js:'jquery.messager.js',
css:'messager.css',
dependencies:['linkbutton','window']
},
layout:{
js:'jquery.layout.js',
css:'layout.css',
dependencies:['resizable','panel']
},
form:{
js:'jquery.form.js'
},
menu:{
js:'jquery.menu.js',
css:'menu.css'
},
tabs:{
js:'jquery.tabs.js',
css:'tabs.css',
dependencies:['panel','linkbutton']
},
splitbutton:{
js:'jquery.splitbutton.js',
css:'splitbutton.css',
dependencies:['linkbutton','menu']
},
menubutton:{
js:'jquery.menubutton.js',
css:'menubutton.css',
dependencies:['linkbutton','menu']
},
accordion:{
js:'jquery.accordion.js',
css:'accordion.css',
dependencies:['panel']
},
calendar:{
js:'jquery.calendar.js',
css:'calendar.css'
},
combo:{
js:'jquery.combo.js',
css:'combo.css',
dependencies:['panel','validatebox']
},
combobox:{
js:'jquery.combobox.js',
css:'combobox.css',
dependencies:['combo']
},
combotree:{
js:'jquery.combotree.js',
dependencies:['combo','tree']
},
combogrid:{
js:'jquery.combogrid.js',
dependencies:['combo','datagrid']
},
validatebox:{
js:'jquery.validatebox.js',
css:'validatebox.css'
},
numberbox:{
js:'jquery.numberbox.js',
dependencies:['validatebox']
},
spinner:{
js:'jquery.spinner.js',
css:'spinner.css',
dependencies:['validatebox']
},
numberspinner:{
js:'jquery.numberspinner.js',
dependencies:['spinner','numberbox']
},
timespinner:{
js:'jquery.timespinner.js',
dependencies:['spinner']
},
tree:{
js:'jquery.tree.js',
css:'tree.css',
dependencies:['draggable','droppable']
},
datebox:{
js:'jquery.datebox.js',
css:'datebox.css',
dependencies:['calendar','validatebox']
},
parser:{
js:'jquery.parser.js'
}
}; // 国际化资源文件
var locales = {
'af':'easyui-lang-af.js',
'bg':'easyui-lang-bg.js',
'ca':'easyui-lang-ca.js',
'cs':'easyui-lang-cs.js',
'da':'easyui-lang-da.js',
'de':'easyui-lang-de.js',
'en':'easyui-lang-en.js',
'fr':'easyui-lang-fr.js',
'nl':'easyui-lang-nl.js',
'zh_CN':'easyui-lang-zh_CN.js',
'zh_TW':'easyui-lang-zh_TW.js'
}; // 加载队列
var queues = {}; /**
* 加载js文件函数,过程就是动态创建一个script标签,然后添加到head标签中去。
* 有一个问题是监听了script标签的两个事件函数,一个是onload,另一个是onreadystatechange,这个数要是针对IE和非IE浏览器准备的
* 万恶的IE浏览器!!!
*/
function loadJs(url, callback){
var done = false;
var script = document.createElement('script');
script.type = 'text/javascript';
script.language = 'javascript';
script.src = url;
script.onload = script.onreadystatechange = function(){
if (!done && (!script.readyState || script.readyState == 'loaded' || script.readyState == 'complete')){
done = true;
script.onload = script.onreadystatechange = null;
if (callback){
callback.call(script);
}
}
}
document.getElementsByTagName("head")[0].appendChild(script);
} /**
* 执行js文件。就是把js文件加载进来,再remove掉
* @param url js的url
* @callback 回调函数,执行完js时会调用这个函数
*/
function runJs(url, callback){
loadJs(url, function(){
document.getElementsByTagName("head")[0].removeChild(this);
if (callback){
callback();
}
});
} /**
* 加载css文件。和加载js文件一样,动态创建一个link标签,然后追加到head标签中去
* @param url css的url
* @param callback 回调函数,加载完成后调用此函数
*/
function loadCss(url, callback){
var link = document.createElement('link');
link.rel = 'stylesheet';
link.type = 'text/css';
link.media = 'screen';
link.href = url;
document.getElementsByTagName('head')[0].appendChild(link);
if (callback){
callback.call(link);
}
} /**
* 加载单独的一个模块
*/
function loadSingle(name, callback){ // 加载队列存入该模块名,并表示状态为loading。
queues[name] = 'loading'; // 根据模块名,取出该模块定义
var module = modules[name]; // js加载状态
var jsStatus = 'loading'; // css加载状态,从这里你就可以看出easyloader.css就是一个开关变量,控制是否加载模块相应的css文件
var cssStatus = (easyloader.css && module['css']) ? 'loading' : 'loaded'; // 是css文件,就使用loadCss来加载之
if (easyloader.css && module['css']){
if (/^http/i.test(module['css'])){
var url = module['css'];
} else {
var url = easyloader.base + 'themes/' + easyloader.theme + '/' + module['css'];
}
loadCss(url, function(){
cssStatus = 'loaded';
if (jsStatus == 'loaded' && cssStatus == 'loaded'){
finish();
}
});
} // 是js文件,就是用LoadJs来加载之
if (/^http/i.test(module['js'])){
var url = module['js'];
} else {
var url = easyloader.base + 'plugins/' + module['js'];
}
loadJs(url, function(){
jsStatus = 'loaded';
if (jsStatus == 'loaded' && cssStatus == 'loaded'){
finish();
}
}); // 最终调用finish函数,来结束加载。并触发onProgress函数,每加载成功一个模块,就调用一次onProgress
function finish(){
queues[name] = 'loaded';
easyloader.onProgress(name);
if (callback){
callback();
}
}
} /**
* easyui模块加载函数
* @param name 模块名,可以是string,也可以是数组
* @param callback 回调函数,当加载结束后会调用此函数
*/
function loadModule(name, callback){ // 模块名,根据依赖关系,从前到后,依次排开
var mm = []; // 加载标识,当其值为true时,表示需要加载的模块已经加载好了
var doLoad = false; // 模块名支持两中,一种是string,一种是数组。这样就可以一次加载多个模块了
if (typeof name == 'string'){
// 是string的时候,调用add方法把模块名push到mm数组中去
add(name);
} else {
for(var i=0; i<name.length; i++){
// 是数组的时候,循环调用add方法把模块名统统push到mm数组中去
add(name[i]);
}
} /**
* loadModule函数中内嵌的一个函数,用来加载模块名到变量mm数组中去
* @param name 模块名,只能是string
*/
function add(name){
// 保护措施,如果该模块名不存在,我们就不要加载了
if (!modules[name]) return; // 否则,就是该模块存在。然后,我们在看看其有没有依赖模块
var d = modules[name]['dependencies'];
if (d){
// 如果有依赖模块,我们要先把依赖模块的名字push到mm中去
// 这里用了递归调用
for(var i=0; i<d.length; i++){
add(d[i]);
}
} // 把模块名放到mm中
mm.push(name);
} /**
* 当一个模块及其依赖模块加载完成时,执行回调函数,并且触发onLoad函数
*/
function finish(){
if (callback){
callback();
}
easyloader.onLoad(name);
} // 加载用时
var time = 0; /**
* 加载所需要的模块,需要的模块,我们已经统计好了,并按依赖关系,先后push到mm中去了
*/
function loadMm(){
// 判断mm是不是空的
if (mm.length){ // 第一个模块
var m = mm[0]; // 判断加载队列是否包含此模块
if (!queues[m]){ // 加载队列不包含此模块,开始加载该模块
// 把doLoad置成true,表示开始加载
doLoad = true; // 调用loadSingle方法来加载模块,加载成功后会把此模块从mm中shift掉,然后继续调用loadMM方法,就形成了递归调用
loadSingle(m, function(){
mm.shift();
loadMm();
});
} else if (queues[m] == 'loaded'){
// 加载队列已经加载过此模块了,不需要在加载了,直接从mm中shift掉即可
mm.shift();
loadMm();
} else {
// 表示正在加载该模块,累计所用时间如果没有超过timeout
// 则过10毫秒再调用一次loadMm函数
if (time < easyloader.timeout){
time += 10;
setTimeout(arguments.callee, 10);
}
}
} else {
// 走到这里,表示该加载的模块都已经加载好了
if (easyloader.locale && doLoad == true && locales[easyloader.locale]){
// 如果设置了国际化,并且已经加载好了,而且该国际化资源还存在,那么加载该资源js
var url = easyloader.base + 'locale/' + locales[easyloader.locale]; // 执行js完事后,调用finish方法
runJs(url, function(){
finish();
});
} else {
// 没定义国际化文件,那么直接调用finish方法吧
finish();
}
}
} loadMm();
} /**
* easyloader定义为全局变量
*/
easyloader = { // 各个模块文件的定义,包括js、css和依赖模块
modules:modules, // 国际化资源文件
locales:locales, // jquery-easyui的根目录,在加载easyloader时,会自动根据你放置的位置而改变
base:'.', // 控件的主题,一共就有两个,在theme目录中。还有一个gray主题,浅灰色的,很难看。
theme:'default', // 这是一个开关变量,控制easyloader加载模块时,要不要加载相应的css文件,默认是需要加载的
css:true, // 国际化语言,可以根据window.navigator.language或者window.navigator.userLanguage来获取当前浏览器的语言。
// 有两个属性,主要因为IE浏览器只认识userLanguage和sysLanguage,万恶的IE浏览器啊!
locale:null, // 加载一个模块的最长时间,超过这个时间,就开始加载下一个模块了。
timeout:2000, // easyloader就公开了这么一个方法,用来加载模块。
// name是模块名,callback是加载成功后执行的函数
load: function(name, callback){
if (//.css$/i.test(name)){
// 如果模块名是以.css结尾 if (/^http/i.test(name)){
// 如果模块名是以http开头,那么css是一个文件的url
loadCss(name, callback);
} else {
// 否则,说明模块名相对于jquery easyui根目录来说的
loadCss(easyloader.base + name, callback);
}
} else if (//.js$/i.test(name)){
// 如果模块名是以.js结尾 if (/^http/i.test(name)){
// 如果模块名是以http开头,那么js是一个文件的url
loadJs(name, callback);
} else {
// 否则,说明模块名相对于jquery easyui根目录来说的
loadJs(easyloader.base + name, callback);
}
} else {
// 以上两种都不是,说明是easyui自己的模块,直接使用loadModule来加载,就可以了
loadModule(name, callback);
}
}, // 当一个模块加载完会触发此函数
onProgress: function(name){}, // 当一个模块和其依赖都加载完会触发此函数
onLoad: function(name){}
};
/**
* 这一小段代码就是查找jquery-easyui的根目录,并赋值给easyloader的base属性上。这样easyloader再加载css文件和js文件就很方便定位了。
*/
var scripts = document.getElementsByTagName('script');
for(var i=0; i<scripts.length; i++){
var src = scripts[i].src;
if (!src) continue;
var m = src.match(/easyloader/.js(/W|$)/i);
if (m){
easyloader.base = src.substring(0, m.index);
}
}
/**
* 这个就起一个别名的作用,比如页面中可以想如下这么下:
* using('window');
* 这样window模块就加载进来了!
*/
window.using = easyloader.load;
/**
* easyloader.js加载的第一模块是parse模块,parser模块调用parse方法,可以解析页面上的easyui控件
*/
if (window.jQuery){
jQuery(function(){
easyloader.load('parser', function(){
jQuery.parser.parse();
});
});
} })();
到这里easyloader就分析结束了,如果你仔细看过了,相信一定会使用easyloader了
EasyUI学习总结(三)——easyloader源码分析(转载)的更多相关文章
- 3.EasyUI学习总结(三)——easyloader源码分析
easyloader模块是用来加载jquery easyui的js和css文件的,即easyloader可以在调用的时候自动加载当前页面所需的文件,不用再自己引用, 而且它可以分析模块的依赖关系,先加 ...
- EasyUI学习总结(四)——parser源码分析
parser模块是easyloader第一个加载的模块,它的主要作用,就是扫描页面上easyui开头的class标签,然后初始化成easyui控件. /** * parser模块主要是解析页面中eas ...
- EasyUI学习总结(四)——parser源码分析(转载)
本文转载自:http://www.cnblogs.com/xdp-gacl/p/4082561.html parser模块是easyloader第一个加载的模块,它的主要作用,就是扫描页面上easyu ...
- memcached学习笔记——存储命令源码分析下篇
上一篇回顾:<memcached学习笔记——存储命令源码分析上篇>通过分析memcached的存储命令源码的过程,了解了memcached如何解析文本命令和mencached的内存管理机制 ...
- memcached学习笔记——存储命令源码分析上篇
原创文章,转载请标明,谢谢. 上一篇分析过memcached的连接模型,了解memcached是如何高效处理客户端连接,这一篇分析memcached源码中的process_update_command ...
- Redis学习之底层链表源码分析
Redis底层链表的源码分析: 一.链表结点的结构(单个结点): // listNode 双端链表节点 typedef struct listNode { // 前置节点 struct listNod ...
- HashMap(三)之源码分析
通过分析HashMap来学习源码,那么通过此过程我们要带着这几个问题去一起探索 为什么要学习源码 怎么去学习 0.1 为什么要学习源码 这个问题,直接给出结论,学习源码肯定是有好处的,比如: 学习优秀 ...
- tornado 学习笔记6 Application 源码分析
Application 是Tornado重要的模块之一,主要是配置访问路由表及其他应用参数的设置. 源代码位于虚拟运行环境文件夹下(我的是env),具体位置为env > lib>sit-p ...
- quartz集群调度机制调研及源码分析---转载
quartz2.2.1集群调度机制调研及源码分析引言quartz集群架构调度器实例化调度过程触发器的获取触发trigger:Job执行过程:总结:附: 引言 quratz是目前最为成熟,使用最广泛的j ...
随机推荐
- PYTHON-字符编码&文件处理-练习
# 把多个账号密码写入文件中# 编写登录功能,登录失败三次 程序退出. # 登录账号密码定义,用列表分割,for循环取值=====判断对错=====循环条件3次退出# with open(r'db.t ...
- tensorflow-安装
1.pip安装(最好在虚拟环境中安装) →更新pip:pip install --upgrade pip →安装最新版tensorflow(GPU):pip install tensorflow-gp ...
- hdu3436 splaytree树模拟队列+离散化缩点
数据较大,需要先把每个top不会操作到的段缩成一个点,记录其开始和结束的位置,和top能操作到的点一起建立一颗伸展树模拟 然后就是普通的队列模拟操作 /* 不会被top操作到的区间就缩点 通过spla ...
- sharding-jdbc结合mybatis实现分库分表功能
最近忙于项目已经好久几天没写博客了,前2篇文章我给大家介绍了搭建基础springMvc+mybatis的maven工程,这个简单框架已经可以对付一般的小型项目.但是我们实际项目中会碰到很多复杂的场景, ...
- pytest四:fixture_yield 实现 teardown
既然有 setup 那就有 teardown,fixture 里面的 teardown 用 yield 来唤醒 teardown的执行 在所有用例执行完后执行:yield import pytest ...
- python+selenium二:定位方式
# 八种单数定位方式:elementfrom selenium import webdriverimport time driver = webdriver.Firefox()time.sleep(2 ...
- Java多线程系列目录
java多线程学习: 传送门:Java多线程系列目录(共43篇)
- git的入门摸索和入门研究
git官网:https://git-scm.com/ git教程---菜鸟教程:http://www.runoob.com/git/git-tutorial.html git教程---廖雪峰:http ...
- POJ 1631 Bridging signals (LIS:最长上升子序列)
题意:给你一个长为n(n<=40000)的整数序列, 要你求出该序列的最长上升子序列LIS. 思路:要求(nlogn)解法 令g[i]==x表示当前遍历到的长度为i的所有最长上升子序列中的最小序 ...
- CentOS7.5安装nodejs
安装方法1——直接部署 1.首先安装wget yum install -y wget 如果已经安装了可以跳过该步 2.下载nodejs最新的tar包 可以在下载页面https://nodejs.org ...