关于LABJS

来源:互联网 发布:办公室网络组建方案 编辑:程序博客网 时间:2024/05/18 03:27

LABjs语法结构分析

LABjs作为一个非常优秀的JavaScript加载工具,广受欢迎,在解决浏览器兼容性,异步加载,延迟加载对于研究资源加载有非常好的启发,下面是对其源码简单的语法结构分析:

(function({
  (function(global{
    /*
        cache 字符串静态变量 提高压缩率
        */
    /*
        无状态变量 用于所有的LABjs实例
        */
    /*
        浏览器能力检测
        */
    /*
        检测函数
        */    var canonical_uricheck_chain_group_scripts_ready,create_sandboxcreate_script_load_listeneris_arrayis_func,merge_objsrequest_scriptscript_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_chaininstanceAPI;
      create_chain function({
        var chainAPI;
        chainAPI {
          scriptfunction({
            return chainAPI;
          },
          waitfunction({
            return chainAPI;
          }
        };
        /*
                    chain API
                    */
        return {
          scriptchainAPI.script,
          waitchainAPI.wait,
          setOptionsfunction({
            return chainAPI;
          }
        };
      };
      /*
              chain API结束
              */
      /*
              LABjs(sandbox) API
              */
      instanceAPI {
        scriptfunction({
          return create_chain().script.apply(nullarguments);
        },
        waitfunction({
          return create_chain().wait.apply(nullarguments);
        },
        sandboxcreate_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(sandboxAPI
    ###
    create_sandbox=->
        ###
        chain API
        ###
        create_chain=->
            chainAPI={
                script:->
                    chainAPI
                wait:->
                    chainAPI
            }
            ###
            chain API
            ###
            {
                script:chainAPI.script
                wait:chainAPI.wait
                setOptions:->
                    chainAPI
            }
        ###
        chain API
        ###
        ###
        LABjs(sandboxAPI
        ###
        instanceAPI={
            script:->
                create_chain().script.apply null,arguments
            wait:->
                create_chain().wait.apply null,arguments
            sandbox:create_sandbox   
        }
        instanceAPI
    ###
    LABjs(sandboxAPI
    ###
    ###
    成LABjs(sandboxAPI例$LAB
    ###
    global.$LAB=create_sandbox()
    return
@

0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 行政拘留拘留所不收应该怎么办 在看守所被打了怎么办 取保候审超过12个月怎么办 拘留20天还没有判刑怎么办 被打了没有证据怎么办 拘留37天后没有放人怎么办 强制执行执行的财产不够怎么办 收到公安局拘留通知家属应该怎么办 对方不出谅解书怎么办 寻衅滋事没抓的 怎么办 公务员政审父母拘留过怎么办 我参与了网赌怎么办 亲人出车祸去世家属怎么办 车牌换了原保险怎么办 北京车牌夫妻变更车险怎么办 赌博拘留15天不交罚款怎么办 给人打了不赔钱怎么办 打了人对方讹钱怎么办 换车了原来的etc怎么办 换异地车牌了etc怎么办 被执行人拘留15天后不还钱怎么办 被执行人拘留后还是不还钱怎么办 摩托车套牌被交警扣了怎么办 套牌摩托车遇到交警怎么办 不知情收到小偷东西了怎么办 盗窃罪法院判定农民赔钱没钱怎么办 公安局通知家属取刑拘通知书怎么办 老公诈骗坐牢家人该怎么办 家人被拘留我该怎么办 车牌被偷了一个怎么办 车牌给人家偷了怎么办 收购了偷来的铝怎么办 员工自动离职后档案怎么办 辞职了老板不发工资怎么办 上班老板不发工资怎么办 逮捕后延长羁押期限怎么办手续 员工提出辞职公司不同意怎么办 员工提出辞职后即不来上班怎么办 打架把对方打成轻伤害怎么办 被刑拘了家人该怎么办 看守所在押人员检查出乙肝怎么办