ROR的AJAX心得

ROR的AJAX心得

最近用ROR做了一个网站(http://www.bladearena.com),全部采用了AJAX来处理数据。在这个
过程中积累了一些心得,在这里总结一下。一方面可以与大家分享,另外也让自己不要那么快忘记了:)

首先还是要赞一下ROR,感觉使用起来入行云流水一般,一发不可收拾。在编码的时候经常一上去就觉得
这个怎么简单,那个怎么那样容易。自己的想法往往一出现,就可以马上实现。似乎在一夜之间编程变成了
一件简单而愉快的事情。呵呵,感觉虽然有点夸张,但实际上也差不多就是。

说了那么多,还是来说说具体的一些心得体会吧。
1.关于页面刷新
    AJAX一个重要的用户体验就是页面不会刷新。所以在程序中如果要更新页面上的数据,就只能更新页面某一
部分,而要保持其它部分不动。要怎么实现呢?这就需要把页面分成很多的小块,具体到ROR上就是把页面分成
很多个.rhtml模板。根据我的经验,在一个功能中需要3样东西。一个ACTION,一个.rjs,一个.rhtml。
    (1)ACTION用来处理逻辑,分析提取数据,然后把需要的数据作为类变量(例如:@user)公开出来。
    (2).rjs用来处理页面表现方式。这里面一般用模板替换比较方便。
    (例如:page[:user].replace_html :partial=>'ui/user')
    (3).rhtml用来表现数据。把ACTION公开的数据用HTML方式表示出来。
    (例如:用户:)
    如上所述,在编程的时候就把很多小的功能通过以上方式一组一组的完成好,然后把它们全部一起镶嵌到
一个页面里,这样就可以很方便的实现了我们的整个系统。

2.关于数据传输的问题
    大家都知道AJAX也是通过HTTP传输数据的,所以数据量的大小也直接决定了页面反应的快慢。因此,在设计
页面的时候就应该尽可能小的划分各个区块,这样在更新数据的时候,只把需要更新的区块更新,不需要的千万不要
多加。

3.div+css
    这要提一下DIV+CSS,它的主要思想是把网页所要表现的内容和风格互相分离。这十分符合AJAX网页
的设计风格。把需要更新的模块分成不同的DIV,让后通过ID进行区分,这样就可以很方便的用我上面说的
方式来处理数据。

4.AJAX分页
    虽然ROR提供了分页,但很明显的是它不是AJAX的使用用的。所以这里就需要自己来做个,就我使用的方法来说。
分成2个部分,数据的显示和分页按钮。
    (1)数据显示就是一个.rhtml,在这里我设置了一个SESSION[:page]变量来存放页码,取数据的时候就通过
这个:page到数据库里面去取,然后把结果显示出来。这个模板很简单,就是一个MODEL的FIND,然后EACH出来就可以
了,其它根本不用管。
    (2)分页按钮对应一个ACTION,这个ACTION的主要作用就处理:page变量,比如增加一页就加1,跳转到第5页
就直接设置成5.然后就是对应这个ACTION的.rjs。这个.rjs其实也就很简单了,就是我上面所说的替换一下数据显示
模板就可以了。这样数据显示模板就会根据新的:page去查询新页面的数据。
    一个AJAX分页也就这样实现了。
   
(这篇文章由风北狼完成于2007-7-11)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值