• aceengine试用


    最近的code jam中用到了百度王集鹄大侠开发的ace-engine。用了一下ace-event和ace-template。非常好用,这里介绍一下。

    ace-event实际上是一个浏览器事件的代理。

    我们首先来看一个简单例子。你的页面上有一个登陆按钮,按下去以后按钮演示要变,同时弹出登陆对话框。还有一个普通的链接,不需要变化样式,点击同样要出现对话框。我们在实现功能的时候可能会这样做:

    1.声明弹出对话框的函数。

    2.给按钮的绑定click事件,先改变样式,再调用对话框函数。

    3.阻止链接的默认行为,调用对话框函数。

    这种做法的缺点是:

    1.逻辑与样式混合,当页面效果复杂了以后代码会混乱。

    2.页面元素如果出现id之类用作选择器的属性变化,代码也需要变动。当新增时,代码中也需要再次绑定。

    ace-event能做的就是将显示与业务逻辑分离。具体的方法如下:(以下步骤中的Event对象并不是ace-event的一部分,需要自己另外实现。)

    1.约定好整个系统中的事件名称,通过一个全局的Event对象来注册和触发事件,各个模块之间监听自己的感兴趣的事件。如用户模块监听login事件。并执行回调。

    Event.on("login", module_user.login);

    2.在页面元素上使用"cmd='login'"来表示点击会要触发的事件。

    3.在表示层中使用ace-event来监听cmd指向的事件,进行页面的渲染,然后再抛出逻辑层事件。如

    AceEvent.on(selector_id, function(command, target){
        //这里的target就是被点击的元素
        //command就是该元素上绑定的命令
    
        //在这里进行页面的渲染
        //同时抛出逻辑层事件,如:
        Event.fire("login");
    });

    这种做法相对于backbone等大的mvc来说优点在于简洁,性能高。

    ace-template就不详述了,相对于其他前端模板它的有点在于js和html可以随意混合编写,不需要类似于"<%"的语法分隔符。很强大。

    项目地址:http://code.google.com/p/ace-engine/

  • 相关阅读:
    软件工程—附加作业
    软件工程最终总结
    电梯调度(两人结对)
    VS单元测试
    第二周作业(2,3题)
    VS的安装
    补救
    漂亮男孩不说谎
    博客带我成长
    Java后缀数组-求sa数组
  • 原文地址:https://www.cnblogs.com/sskyy/p/2523479.html
Copyright © 2020-2023  润新知