zoukankan      html  css  js  c++  java
  • 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/

  • 相关阅读:
    printcap
    browser-ua
    PHP 开发 APP 接口 学习笔记与总结
    Java实现 LeetCode 72 编辑距离
    Java实现 LeetCode 72 编辑距离
    Java实现 LeetCode 72 编辑距离
    Java实现 LeetCode 71 简化路径
    Java实现 LeetCode 71 简化路径
    Java实现 LeetCode 71 简化路径
    Java实现 LeetCode70 爬楼梯
  • 原文地址:https://www.cnblogs.com/sskyy/p/2523479.html
Copyright © 2011-2022 走看看