ace-engine试用

本文介绍如何使用ACE-Engine中的ace-event和ace-template库,通过事件代理和灵活的模板系统,将页面显示逻辑与业务逻辑分离,提升代码可维护性和性能。着重展示了如何在页面中灵活地绑定事件和渲染模板,实现更简洁高效的前端开发流程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近的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/

转载于:https://www.cnblogs.com/sskyy/archive/2012/05/29/2523479.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值