Rails Recipe实践(one by one) -- Update Multiple Elements...

在编写ajax应用的时候,有时需要在一次click中同时更新页面上的多个元素,这该怎么做呢?rails提供了一个新鲜玩意儿,可以帮助我们 ’成批’ 的更新页面元素。
这一章碰到的这个新玩意儿,叫做Romote Javascript(RJS),可以在其中写入ruby代码,它则会自动转化为javascript语法,极大的方便了我这种三脚猫水平的web开发人员。rjs会在需要的时候自动生成javascript代码,然后将content-type设置成text/javascript,在view端,集成在rails中的prototype(前提是你在view中引用了javascript_include_tag :default 或者javascript_include_tag :prototype)会识别并且将从服务器端返回的内容当作javascript代码自动执行。当然,既然你想要图方便,自然需要遵守rjs文件得规矩。一个rjs文件得内容看上去类似下面得内容:
ruby 代码
 
  1. page.replace_html 'time_updated' , Time.now.to_s  
  2. page.visual_effect :shake, 'time_updated'  
  3. page.insert_html :top, 'the_list' , '
  4. King of the Hill'  
怎么样,是不是一目了然?让我用javascript写同样功能的代码出来,估计,我要晕半天了。
具体的实现起来相当简单,假设,我的某个页面上有个ajax链接,单击它,就会更新页面上的多个不同部分。
ruby 代码
 
  1. <%= link_to_remote 'rjs demo',:url=>{:action=>:rjs_show} %>  
这个名为rjs_show的action内容假设为空,因为在这里我们不需要action处理事务,所有的ajax操作,我们都放将放到rjs文件中去:
ruby 代码
 
  1. def rjs_show  
  2. end  
注意,action和rjs文件必须是同名的,既,这里的rjs文件应该名为rjs_show.rjs,和同一个controller下的视图文件放在一起。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值