Rails,在页面加载时通过JS渲染部分?

时间:2011-05-22 21:14:53

标签: ruby-on-rails

所以我理解在点击链接时如何获得部分渲染,但是说我想在页面渲染后开始加载部分?

show.html.erb

<div id="weather"></div>

weather.js.erb

$( "#weather" ).html( "<%= escape_javascript(render( :partial => 'weather' )) %>");

weather.html.erb

<%= Time.now %> # For brevity. This actually does more.

控制器

def weather

  slow_api_request

  respond_to do |format|
    format.js {render :layout => false}
  end
end

但那么如何在页面加载后启动部分请求(因为从API检索数据的动作非常慢),我使用的是rails UJS,我只是有点困惑。

1 个答案:

答案 0 :(得分:3)

您只需添加ajax来电即可。假设您正在使用jQuery,只需在视图中添加此类脚本:

$.ajax({
  type: "GET",
  url: "<%= url_for your_path %>" ,
  success: function(data){
    //if ever there is something more to do (there is also an error handler)
  }
});