我的 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 %>
我想知道:
- 如果这是默认的(建议的,最好的)Rails 方式来进行部分页面刷新,或者通常是处理 ajax 请求的方式?
- 如果让服务器使用纯 html 响应并让客户端(javascript)进行替换会更快吗?
- 你如何在你的应用程序中处理这个?