关于LABJS
来源:互联网 发布:办公室网络组建方案 编辑:程序博客网 时间:2024/05/18 03:27
LABjs语法结构分析
LABjs作为一个非常优秀的JavaScript加载工具,广受欢迎,在解决浏览器兼容性,异步加载,延迟加载对于研究资源加载有非常好的启发,下面是对其源码简单的语法结构分析:
(function() {
(function(global) {
/*
cache 字符串静态变量 提高压缩率
*/
/*
无状态变量 用于所有的LABjs实例
*/
/*
浏览器能力检测
*/
/*
检测函数
*/ var canonical_uri, check_chain_group_scripts_ready,create_sandbox, create_script_load_listener, is_array, is_func,merge_objs, request_script, script_excuted;
is_func = function() {};
is_array = function() {};
/*
url parser
*/
canonical_uri = function() {};
/*
合并对象属性
*/
merge_objs = function() {};
/*
功能函数开始
*/
/*
检测chain中有预备可执行的script
*/
check_chain_group_scripts_ready = function() {};
/*
创建script load事件监听
*/
create_script_load_listener = function() {};
/*
script执行句柄
*/
script_excuted = function() {};
/*
下载script
*/
request_script = function() {};
/*
功能函数结束
*/
/*
LABjs(sandbox) API开始
*/
create_sandbox = function() {
/*
chain API开始
*/ var create_chain, instanceAPI;
create_chain = function() {
var chainAPI;
chainAPI = {
script: function() {
return chainAPI;
},
wait: function() {
return chainAPI;
}
};
/*
chain API
*/
return {
script: chainAPI.script,
wait: chainAPI.wait,
setOptions: function() {
return chainAPI;
}
};
};
/*
chain API结束
*/
/*
LABjs(sandbox) API
*/
instanceAPI = {
script: function() {
return create_chain().script.apply(null, arguments);
},
wait: function() {
return create_chain().wait.apply(null, arguments);
},
sandbox: create_sandbox
};
return instanceAPI;
};
/*
LABjs(sandbox) API结束
*/
/*
生成LABjs(sandbox) API实例$LAB
*/
global.$LAB = create_sandbox();
})(this);
}).call(this);
coffeescript:
((global)->
###
cache 字符串静态变量 提高压缩率
###
###
无状态变量 用于所有的LABjs实例
###
###
浏览器能力检测
###
###
检测函数
###
is_func=->
is_array=->
###
url parser
###
canonical_uri=->
###
合并对象属性
###
merge_objs=->
###
功能函数开始
###
###
检测chain中有预备可执行的script
###
check_chain_group_scripts_ready=->
###
创建script load事件监听
###
create_script_load_listener=->
###
script执行句柄
###
script_excuted=->
###
下载script
###
request_script=->
###
功能函数结束
###
###
LABjs(sandbox) API开始
###
create_sandbox=->
###
chain API开始
###
create_chain=->
chainAPI={
script:->
chainAPI
wait:->
chainAPI
}
###
chain API
###
{
script:chainAPI.script
wait:chainAPI.wait
setOptions:->
chainAPI
}
###
chain API结束
###
###
LABjs(sandbox) API
###
instanceAPI={
script:->
create_chain().script.apply null,arguments
wait:->
create_chain().wait.apply null,arguments
sandbox:create_sandbox
}
instanceAPI
###
LABjs(sandbox) API结束
###
###
生成LABjs(sandbox) API实例$LAB
###
global.$LAB=create_sandbox()
return
) @
- 关于LABJS
- LABjs手册
- LABjs浅析
- LABJS浅析
- LABjs原理分析
- LABjs、RequireJS、SeaJS
- LABjs源码浅析
- LABjs、RequireJS、SeaJS
- labjs使用教程
- RequireJS、SeaJS、 LABjs的区别
- LABjs、RequireJS、SeaJS的区别
- LABjs、RequireJS、SeaJS的区别
- LABjs --- Javascript实现异步加载和阻塞
- Javascript文件加载:LABjs和RequireJS
- Javascript文件加载:LABjs和RequireJS
- 异步加载js文件:LABjs和RequireJS
- 谁能传一个LABjs框架源码吗?
- Javascript文件加载:LABjs和RequireJS
- 网络营销的市场在哪里?
- Delphi报表控件QuickReport VS FastReport对比
- 安卓图表引擎AChartEngine(二) - 示例源码概述和分析
- DataGridView 的样式
- JTextArea设置滚动条
- 关于LABJS
- 浅谈iPhone OS(iOS)架构
- VMware、Centos和Unity模式以及其它VMware虚拟机相关
- 基于R的C4.5决策树的建立
- 迷宫一题,我卡住了一个星期,求帮助
- 如何使JTextArea随着窗体的变化自动调整大小
- Windows XP 即将结束支持
- 如何为iPhone 5S编译64位应用
- MATLAB入门教程(转)