`

LABJS使用实例

阅读更多

知道LABJS这个概念其实早于sea.js,但因为sea.js是中文,并且第一眼就喜欢上sea.js的CommonJS所以并没有深入了解过LABJS。

在 使用sea.js的时候不可避免的碰到js文件依赖问题,这时候才想起不到5k的LABJS来,看过手册之后俺不禁怀疑“有必要sea.js和labjs 一起使用么”,或许俺等到sea.js可以支持文件加载顺序之后再回到sea.js的怀抱?除了看起来美观和支持css外,没看到sea.js有什么更大 的优势,原有项目迁移到labjs上比迁移到sea.js上成本要小很多,而且labjs比sea.js小了近一半…

介绍下LABJS的几个实例:


实例1:

 
 
 
 
$LAB
    .script("script1.js")
    .script("script2.js")
    .script("script3.js")
    .wait(function(){ // 等待所有script加载完再执行这个代码块
        script1Func();
        script2Func();
        script3Func();
    });

实例2:

1
2
3
4
5
6
7
8
9
$LAB
    .script({ src: "script1.js", type: "text/javascript" })
    .script("script2.js")
    .script("script3.js")
    .wait(function(){ // 等待所有script加载完再执行这个代码块
        script1Func();
        script2Func();
        script3Func();
    });

实例3:

1
2
3
4
5
6
7
$LAB
    .script("script1.js", "script2.js", "script3.js")
    .wait(function(){ // 等待所有script加载完再执行这个代码块
        script1Func();
        script2Func();
        script3Func();
    });

实例4:

1
2
3
4
5
6
7
$LAB
    .script( [ "script1.js", "script2.js" ], "script3.js")
    .wait(function(){ // 等待所有script加载完再执行这个代码块
        script1Func();
        script2Func();
        script3Func();
    });

实例5:

1
2
3
4
5
6
$LAB
    .script("script1.js").wait() // 空的wait()只是确保script1在其他代码之前被执行
    .script("script2.js") // script2 和 script3 依赖于 script1
    .script("script3.js").wait() // 但是script2 和 script3 并不互相依赖,可以并行下载
    .script("script4.js") //  script4 依赖于 script1, script2 及 script3
    .wait(function(){script4Func();});

实例6:

1
2
3
4
5
6
7
8
9
$LAB
    .script("script1.js") // script1, script2, and script3 之间没有依赖关系,
    .script("script2.js") // 所以可以任意顺序执行
    .script("script3.js")
    .wait(function(){  // 如果需要,这里当然可以执行javascript函数
        alert("Scripts 1-3 are loaded!");
    })
    .script("script4.js") // 依赖于 script1, script2 及 script3
    .wait(function(){script4Func();});

实例7:

1
2
3
4
5
6
7
$LAB
    .setOptions({AlwaysPreserveOrder:true}) // 设置每个脚本之间等待
    .script("script1.js") // script1, script2, script3, script4 互相依赖
    .script("script2.js") // 并且并行下载后循序执行
    .script("script3.js")
    .script("script4.js")
    .wait(function(){script4Func();});

实例8:

1
2
3
4
5
6
7
8
9
10
11
12
$LAB
    .script(function(){
        // `_is_IE`的值ie为true ,非ie为false
        if (_is_IE) {
            return "ie.js"; // 如果是ie则这个js会被加载
        }
        else {
            return null; //如果不是ie这个代码就会被略过
        }
    })
    .script("script1.js")
    .wait();
分享到:
评论

相关推荐

    LABjs无阻塞脚本加载工具

    开源无阻塞脚本加载工具LABjs。该工具提供了对加载过程更精细的控制,并试图同时下载尽可能多的代码。

    LABjs-2.0.3

    LABjs-2.0.3

    LABjs-master--js有序加载.rar

    LAB.js解决ajax异步--js加载顺序不能自定义的问题,有实例。

    前端项目-labjs.zip

    前端项目-labjs,labjs(加载和阻塞javascript)是一个由getify解决方案支持的开源(mit许可证)项目。...使用labjs加载脚本可以减少页面加载过程中的资源阻塞,这是优化站点性能的一种简单有效的方法。

    详谈LABJS按需动态加载js文件

    LABjs 是一个很小的 JavaScript 工具,用来根据需要加载 JavaScript 文件,通过使用该工具可以提升页面的性能,避免加载不需用到的 JavaScript 文件,可以实现动态并行加载脚本文件,以及管理加载脚本文件的执行顺序...

    LABjs、RequireJS、SeaJS的区别

    一、LABjs 的核心是 LAB(Loading and Blocking):Loading 指异步...模块加载器也可降级为文件加载器用,因此使用 RequireJS 和 SeaJS,也可以达成 LABjs 的性能优化目的。 三、RequireJS 和 SeaJS 都是很不错的模块加

    labjs-downloader:一个在Rs VM中打包Ring VM的存储库,用于运行愚蠢的小Labjs脚本来解压缩SQLite实验数据

    见run_script.sh对于如何启动一个实例RScript过程,在这种情况下, sqlite_to_csv.R从labjs分布。 建立 您可以构建一个名为r.sif的本地奇点图像,但这需要root: sudo singularity build r.sif r.def 或者,在...

    使用jQuery异步加载 JavaScript脚本解决方案

    目前流行的几个加载器,像 curljs、LABjs 和 RequireJS 使用都很广泛。他们功能强大的,但有些情况下可以有更简单的方案。 如果你正在使用 jQuery,有一个内置的方法可以用来加载脚本。如果你想延迟加载插件或任何...

    Web前端模块化框架BrowserRequire.zip

    BrowserRequire 是给浏览器使用的模块化框架,并且提供灵活加载js文件(非模块化文件)的功能。 中文使用指南:点击进入! 目录介绍 dist————BrowserRequire框架压缩文件 example————示范案例 ...

    in.js 一个轻量级的JavaScript颗粒化模块加载和依赖关系管理解决方案

    国外的像基于jQuery的RequireJs,YUI Loader,LabJs,RunJs,国内也有淘宝的SeaJs,豆瓣的DoJs等,这些都是一些十分优秀的模块加载器。但是本文将会向大家介绍一个新的开源的轻量级“多线程”异步模块加载器In.js,...

    patchjs:Patch.js是用于移动Web的增量(字符级别)脚本加载器

    网站我们新的GitHub存储库关键的未来简单易用的API,例如Labjs。 支持localStorage / Web SQL数据库/ IndexedDB。 通过nginx进行实时差异计算。 通过webpack构建差异计算。装载机参考< script src =" ./patchjs-...

    自定义require函数让浏览器按需加载Js文件

    可能很多人看到这个题目就会想到LABjs、RequireJS、SeaJS... 这些库,但无奈小编没用过这些库,什么 AMD 、CMD 哪来那么多术语... 前端的库太多了,要看各种乱七八糟的文档,好难啊,还不如自己写一个库呢。于是就有...

    JavaScript将相对地址转换为绝对地址示例代码

    在看LABjs源代码时,发现里面有个将相对地址转为绝对地址的函数,将其拿出纪录如下: 代码如下: function canonical_uri(src, base_path) { var root_page = /^[^?#]*\//.exec(location.href)[0], root_...

    lab.js-2.0.3

    lab.js它能够动态并行加载脚本文件 以及 管理加载脚本文件的执行顺序

Global site tag (gtag.js) - Google Analytics