5.3. A Real-World Example

5.3. A Real-World Example

让我们一起来看一个应用RJS的实例吧!一个在线商店。用Rails实现其购物车。当一个购物项被加入到购物车,要让三个不同的页面元素根据变化进行更新。

5.3.1. The Old Way

在RJS之前,处理在购物车中增加或移除项目是用一大堆的Javascript代码和多次与服务端的交互的方式。这些javascript代码可能是下面这样:

}

这样是可以工作,但是存在一些比较严重的问题:这一大堆的代码使得其可读性和可维护性并不高;它必须多次与服务端进行交互,这会让应用变慢,错误发生率高,效率低下;而且页面元素的更新也不能达到同步的效果,因为响应慢,如果在这个过程半路中出现可能出现的错误情况,会让页面陷入混乱的境地。

5.3.2. The RJS Way

而用RJS来解决这个问题,会更简单也更有效率。不需要编写Javascript代码,通过一次传递来完成任务。下面来看看如何实施这个过程。“Add to Cart”链接使用标准的Ajax link helper:

点击链接后引发add_to_cart这个action,在action中会更新session的内容并且调用对应的RJS文件,add_to_cart.rjs:

RJS被翻译成为javascript代码并且返回给浏览器执行,以此来同步更新页面上的三个元素。代码中的3行做了原始方法中做的所有事情,但是响应更快,同时减少了错误的发生。





本文转自 fsjoy1983 51CTO博客,原文链接:http://blog.51cto.com/fsjoy/91999,如需转载请自行联系原作者
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值