如何从javascript从服务器获取数据?

时间:2011-03-08 18:28:51

标签: javascript ruby-on-rails

我的网络应用中有一个条形图(使用javascript绘制)。它可以比屏幕更宽,因此有一些箭头可以在点击时沿着x轴移动图形(再次使用javascript)。

我想在用户点击箭头时重绘图表。为生成图表而执行的数据操作过于复杂,无法在客户端执行,我不想一次性发送,因为如果用户从未决定滚动,那将是一种浪费。

相反,在点击时,我想向服务器发送一个请求,以获取绘制图形下一部分所需的新数据。怎么办呢?

注意:我只想要请求数据,而不是新页面。服务器端是Ruby on Rails v.3.0.4。

2 个答案:

答案 0 :(得分:1)

答案 1 :(得分:1)

你需要Ajax。您可以使用内置的Prototype或任何其他Javascript库来完成此任务。所以,给你一个使用jQuery的例子,你可以添加一个点击处理程序

$('#target').click(function() {
  // Use the $.ajax or equivalent function to send a request to a method in your controller
});

所以在这个例子中,你可以在你的控制器中提到方法中的dom操作代码,如下所示:

def target_method
  # Process data 
  # dom manipulation code
  render :update do |page|
    #use a rails javascript helper like replace_html or the likes
  end 
end

或者使用Unobtrusive Javascript方式并在js.erb文件中插入DOM操作代码。

以下是一些有用的链接

  1. Rails API on Prototype helpers
  2. Unobtrusive JavaScript on Rails