`
code0x14
  • 浏览: 1693 次
社区版块
存档分类
最新评论

StdJS 0.2.1版本发布,通用javascript库

阅读更多

StdJS 0.2.1 对0.2版本中存在的一些已知bug进行了修复,同时增加了几个新的方法,以及对部分功能的进行了更新.

 

 

功能增加:

 

1. Std.css模块增加了静态方法 support , 用于测试浏览器对指定css名称的支持情况,如果浏览器支持指定名称的css属性,将会返回true,否则返回false

 

//true
Std.css.support("fontSize");
Std.css.support("font-size");
//false
Std.css.support("boxWidth");
//true
Std.css.support("animation",true);

 

 

 

2. Std.timer模块中增加了静态方法 test ,该方法用于执行一个指定的函数,可以指定函数执行的次数,当执行完毕之后,返回这个函数执行消耗的时间.

 

//测试循环需要的时间
Std.timer.test(function(){
    for(var i=0;i<100000000;i++){
    }
});

 

 

 

3. Std.dom模块增加了静态方法 isDocument, 该方法用于判断一个对象是否为一个document对象,返回一个Boolean值.

 

4. Std.dom模块增加了静态方法 documentElement,该方法用于获取一个指定元素的文档根元素,如果传递的参数不是一个DOM元素,而是document,则返回document.documentElement,如果是window,则返回window.document.documentElement

 

 

功能更新:

 

1. 更新了Std.dom的成员方法insert,当没有传递第二个参数或第二个参数为空的时候,默认插入到末尾.

2. 更新了Std.dom的成员方法addClass,removeClass,toggleClass,className 在document和window上进行操作的时候直接转移到documentElement上

 

 

bug修复:

 

1. 修复了Std.dom成员方法addClass增加类名时候可以增加空格的bug
2. 修复了Std.dom.united模块通过css选择器获取元素时候在chrome下有可能获取重复的bug
3. 修复了Std.dom的成员方法insert插入到最后一个索引位置不正确的bug
4. 修复了Std.dom的成员方法hasFocus在document失去焦点之后获取到结果不准确的bug
5. 修复了Std.ui的layout模块insert方法插入出错的bug
6. 修复了Std.ui的locker模块有滚动条的情况下无法遮住整个网页的bug
7 .修复了Std.dom的成员方法mouse,在document和window对象上会报错,unselect选项无法起作用的bug


 

 

StdJS文档地址:

 

http://doc.stdjs.com/action_documentation.location_documentation&ID=8

 

 

一些StdJS代码例子


 

/*
* 创建一个div节点同时包含10个HTML为abc的span子节点,并添加到body.
*/
var abc = new Std.dom("div>span{abc}*10","body")

 

<!--
利用css selector方式来编写html代码,该代码可以直接被转换为html
-->
<script type="text/std-css-selector" render-here="true">
    (.header > .title + .navigation) +
    (.body > .content > span{body content}) +
    (.footer > .links > (a[href='#']{link1} + a[href='#']{link2}))
</script>

 

<!--
用css selector字符串进行快速创建UI组建的布局,比JS创建省下了80%的代码
-->

<script type="text/std-ui" std-name="test">
GridLayout[rows=3][columns=2] > (
    (Label{名称:} + LineEdit#name) +
    (Label{日期:} + DateTimeEdit#dateTime) +
    (Label{描述:} + TextEdit#text)
)
</script>

 

/*
* 异步载入第三方外部资源文件,文件全部载入之后会触发 Std.main 方法
* Std.require 方法支持跨域文件的载入
*/

//3个文件同时载入
Std.require("1.js","1.css","123.png");

//3个文件顺序载入,一个载入完成之后载入下一个
Std.require(["1.js","1.css","123.png"]);

 

/*
* 设置代码仓库的源地址,当使用代码源中包时自动加载对应代码文件,而无需手动调用
* 源中可以包含数千个包,而这些包仅会在使用时候才会被载入.
*/
Std.source("StdJS","http://source.stdjs.com");

//载入名称为 ui.Window 包之后触发回调函数
Std.use("ui.Window",function(){
    //...
});

//创建一个函数,在执行这个函数时候,自动从代码源中载入包 "ui.Button","ui.ToolBar"
var func1 = Std.func(function(){
    //....
},{
    packages:["ui.Button","ui.ToolBar"]
});
                 

 

/*
* 添加新的根据浏览器内核自动调配的css规则.
* 该方法可以自动解决浏览器的兼容性,并且随时可以删除或禁用这个规则
* 该方法在大多情况下都可以直接替代style或link标签来载入css
*/
Std.css({
    body:{
        color:"red",
        transform:"skewY(-6deg)"
    },
    span:{
        color:"black"
    },
    "#content":{
        '>':{
            p:{
                lineHeight:"20px"
            }
        }
    }
});

 

<!--
通过html标签创建Std.animation.keyframes与CSS3通用并兼容所有浏览器的动画规则..
StdJS内置解析和执行的模块,无需浏览器支持,可以在低版本的浏览器中运行
可以动态的手动暂停或者停止正在执行的任务
-->

<script type="text/std-animation">
@keyframes testKeyframe{
    0%{
      width:50px;
      height:100px;
      background:red;
    }
    50%{
      width:90px;
      height:120px;
      background:blue;
      color:red;
      animation-timing-function:ease;
    }
    100%{
      height:150px;
      width:300px;
      background:green;
      color:blue;
    }
}
</script>

 

<!--
高性能模板,内置两套语法,简写语法和JS语法
-->

<script type="text/std-template" std-name="tpl1">
    <?@include 'header.tpl'?>
    <div class="title"><?=title?></div>
    <?#each abc as index,value?>
    <div class="item">
        <div class="_index"><?=index?></div>
        <div class="_value"><?=value?></div>
    </div>
    <?/each?>
</script>

<script>
    Std.main(function(){
        Std.template("tpl1").renderTo("body",{
            abc:["first","second","last"],
            title:"title text"
        });
    })
</script>

 

/*
* 创建两个模块,A和B,模块B继承模块A
* 模块B会继承模块A的所有参数,例如静态方法,option参数选项,模型等
* 模块可以被多次继承,成员方法本身也可以被多次扩展
*/
var A = Std.module({
    model:"events",
    option:{
        width:32,
        height:32,
        name:"test"
    },
    static:{
        func1:function(){
            console.log("static func1");
        },
        func2:function(){
            console.log("static func2");
        }
    },
    public:{
        func1:function(){
            console.log("func1_A");
        },
        func2:function(){
            console.log(this.opts.name);
        }
    },
    main:function(option){
        this.init_opts(option);
        console.log("main_a");
    }
});

//创建模块B,继承模块A,并且扩展成员方法func1
var B = Std.module({
    parent:A,
    option:{
        name:"testB"
    },
    extend:{
        func1:function(){
            console.log("func1_B")
        }
    },
    main:function(){
        console.log("main_b");
    }
})

//创建模块A的实例
var a = new A({width:44});

//创建模块B的实例
var b = new B({width:56});

 

StdJS网站: http://www.stdjs.com

2
1
分享到:
评论

相关推荐

    pyltp0.2.1版本python3.7linux安装包

    基于哈工大分词工具源码编译而来,Pyltp在Linux下的whl包。 像自行编译的同学可以参考我的文章。https://blog.csdn.net/tamako0v0/article/details/124636971?spm=1001.2014.3001.5501

    美团版yolov6 0.2.1版本 Implementation of paper - YOLOv6: A Single-St

    【标题】:“美团版YOLOv6 0.2.1版本:YOLOv6: A Single-Stage Object Detector的实现” 【描述】中的知识点详解: YOLO(You Only Look Once)系列是深度学习领域中一种高效且准确的目标检测算法。YOLOv6是由美团...

    Python库 | zoid-0.2.1.tar.gz

    资源分类:Python库 所属语言:Python 资源全名:zoid-0.2.1.tar.gz 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059

    KafkaOffsetMonitor监控0.2.1版本

    KafkaOffsetMonitor是一个可以用于监控Kafka的Topic及Consumer消费状况的工具,配置文档https://blog.csdn.net/GPF19950411/article/details/79430258

    Cursor 0.2.1安装包

    总的来说,Cursor 0.2.1安装包的使用涉及到了软件安装、个性化定制、版本管理等多个IT知识领域。通过了解这些基础知识,用户可以更安全、有效地使用和管理这类软件,提高工作效率并享受更好的使用体验。

    Python库 | pyasn1_modules-0.2.1-py2.6.egg

    资源分类:Python库 所属语言:Python 资源全名:pyasn1_modules-0.2.1-py2.6.egg 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059

    Python库 | mmproteo-0.2.1.tar.gz

    这个0.2.1版本的发布,意味着开发者和研究人员可以期待一系列经过优化和改进的功能,以满足他们在蛋白质鉴定、定量、以及后续数据解析的需求。 首先,我们来看看mmproteo库的基本结构。在解压mmproteo-0.2.1.tar.gz...

    Python库 | zmarketo-0.2.1.tar.gz

    本文将深入探讨名为"zmarketo"的Python库,其版本为0.2.1,以tar.gz格式打包的资源全称为"zmarketo-0.2.1.tar.gz"。 一、Python库的基本概念 Python库,也被称为模块,是一组预先编写好的函数和类,旨在解决特定...

    Python库 | vel-0.2.1.tar.gz

    版本号0.2.1表明这是该库的第二个小更新版本。 在Python生态系统中,使用tar.gz格式打包的文件通常是源代码发布,用户需要先解压(tar -zxvf vel-0.2.1.tar.gz),然后使用Python的setup.py脚本来安装(python ...

    jnasmartcardio-0.2.1.zip

    "jnasmartcardio"可能指的是一个与Java Native Access (JNA)相关的库,用于智能卡(Smart Card)的交互,而"0.2.1"则表示这是项目的第二个主要版本的第一次次要更新,通常意味着它可能包含一些新的功能、改进或错误...

    Python库 | lykkelleconf-0.2.1-py3-none-any.whl

    Python库“lykkelleconf-0.2.1-py3-none-any.whl”是一个用于配置管理的软件包,特别适用于Python开发环境。这个压缩包是专门为Python 3设计的,意味着它不支持Python 2或其他版本。"whl"文件格式是Python的一种二...

    Python库 | qikdb-0.2.1.tar.gz

    这里的0.2.1可能意味着该库在功能完善度和稳定性方面还有待提高,开发者可能会定期发布新版本以修复已知问题,增加新功能,或者提升性能。 **学习与进阶** 为了深入了解和有效使用`qikdb`,建议参考官方文档、源...

    Python库 | version-helper-0.2.1.tar.gz

    “version-helper-0.2.1.tar.gz”是一个压缩包文件,它包含了一个名为“version-helper”的Python库的源代码,版本号为0.2.1。这个库通常用于帮助开发者管理和处理软件的版本信息。在软件开发过程中,版本管理对于...

    cookie插件v0.2.1

    标题"cookie插件v0.2.1"表明这是一个关于Cookie管理或操作的浏览器插件,其版本号为0.2.1,通常版本号的更新意味着功能的改进或修复了某些问题。描述中的信息较简略,没有提供额外的详细信息,但可以推测这个插件...

    Python库 | hyppo-0.2.1.tar.gz

    0.2.1版本的发布意味着`hyppo`库已经经过了一定的迭代和优化,修复了一些已知问题,提高了稳定性和性能。通常,新版本会引入新的功能或改进现有功能,以满足不断变化的用户需求。 综上所述,`hyppo`是一个强大的...

    Python库 | luna-0.2.1.tar.gz

    标题中的“Python库 | luna-0.2.1.tar.gz”表明这是一个针对Python编程语言的第三方库,名为"Luna",并且其版本号为0.2.1。这个库通常包含了开发者为了实现特定功能而编写的Python模块或类。Luna库可能包含了多种...

    Python库 | lockdown-0.2.1.tar.gz

    在Python的世界里,`lockdown-0.2.1.tar.gz` 是一个特定版本的Python库,名为“lockdown”,版本号为0.2.1。这个库可能包含了特定的模块和函数,旨在解决特定的问题或提供特定的服务。 `.tar.gz` 是一种常见的文件...

    dynjs-0.2.1.zip

    标题 "dynjs-0.2.1.zip" 提示我们关注的是一个名为 "dynjs" 的项目的特定版本,这里是 0.2.1 版本。DynJS 是一个JavaScript运行时环境,它允许用户在服务器端执行JavaScript代码,类似于Node.js。这个版本可能是对...

    Python库 | mtpl-0.2.1.tar.gz

    mtpl-0.2.1.tar.gz 是一个针对Python的特定库的压缩包,版本号为0.2.1,它以tar.gz格式封装。这种格式是Linux和Unix系统中常见的归档和压缩方式,由tar命令进行文件归档,然后通过gzip工具进行压缩,以减小文件的...

    Python库 | aplus-auth-0.2.1.tar.gz

    "auth"则直接指明了其与身份验证相关的功能,而"0.2.1"是版本号,表明这是该库的第二个次要更新,第一个补丁版本。 在`aplus-auth-0.2.1.tar.gz`这个压缩包中,我们可以看到一个名为`aplus-auth-0.2.1`的文件,这...

Global site tag (gtag.js) - Google Analytics