繁体   English   中英

Rails-Ajax页面局部更新

[英]Rails - ajax page partial update

我的home.html.haml页面呈现了3个部分:

%h1 Foo
#foo1
 = render partial: 'foo/foo', locals: {items: @foo1_items}
#foo2
 = render partial: 'foo/foo', locals: {items: @foo2_items}
#foo3
 = render partial: 'foo/foo', locals: {items: @foo3_items}

当前,我有一些远程链接可以单独刷新这些部分,从而触发对主页的ajax调用:

= link_to 'refresh', home_path(mode: 'foo1'), remote:true
= link_to 'refresh', home_path(mode: 'foo2'), remote:true
= link_to 'refresh', home_path(mode: 'foo3'), remote:true

我有一个home.js.erb ,其中包含以下内容:

<% if params[:mode] == 'foo1'%>
$('#foo1').html('<%= j(render partial: 'foo/foo', locals: {items: @foo1_items}) %>')
<% elsif params[:mode] == 'foo2'%>
$('#foo2').html('<%= j(render partial: 'foo/foo', locals: {items: @foo2_items}) %>')
<% else %>
$('#foo3').html('<%= j(render partial: 'foo/foo', locals: {items: @foo3_items}) %>')
<% end %>

我想知道:

  1. 如果这是默认的(建议的,最好的)Rails方法来进行部分页面刷新,或者通常是处理ajax请求的方法?
  2. 如果让服务器使用纯HTML响应并让客户端(javascript)进行替换会更快?
  3. 您如何在应用程序中处理此问题?
  1. 是的,这是在Rails中实现的正确方法
  2. 就处理而言,这将是同一件事。 在服务器上吐出的所有内容都会在客户端浏览器上执行,并且元素会更新。 在服务器端,您可以更好地控制ERB。
  3. 使用相同的方法。

希望这会有所帮助

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM