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

如何从javascript从服务器获取数据?,javascript,ruby-on-rails,Javascript,Ruby On Rails,我的web应用程序中有一个条形图(使用javascript绘制)。它可以比屏幕更宽,因此有箭头可以在单击时沿x轴移动图形(同样使用javascript制作) 我想在用户单击箭头时重新绘制图形。生成图形所执行的数据操作太复杂,无法在客户端完成,我不想一次发送所有数据,因为如果用户从未决定滚动,这将是一种浪费 相反,单击一下,我想向服务器发送一个请求,请求获取绘制图表下一部分所需的新数据。如何做到这一点 注意:我只想请求数据,而不是新页面。服务器端是RubyonRailsV。3.0.4. 您需要研

我的web应用程序中有一个条形图(使用javascript绘制)。它可以比屏幕更宽,因此有箭头可以在单击时沿x轴移动图形(同样使用javascript制作)

我想在用户单击箭头时重新绘制图形。生成图形所执行的数据操作太复杂,无法在客户端完成,我不想一次发送所有数据,因为如果用户从未决定滚动,这将是一种浪费

相反,单击一下,我想向服务器发送一个请求,请求获取绘制图表下一部分所需的新数据。如何做到这一点


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

您需要研究AJAX

为此您需要AJAX。您可以使用内置原型或任何其他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
或者采用不引人注目的Javascript方式,在js.erb文件中插入DOM操作代码

这里有一些有用的链接


  • 谢谢你的帮助。我将按照您的建议使用jQuery,因为我已经在使用它了。此时包含prototype将导致它与jQuery争夺“$”符号。如果需要同时使用这两个库,可以使用jQuery的noconflict方法。