我的网络应用中有一个条形图(使用javascript绘制)。它可以比屏幕更宽,因此有一些箭头可以在点击时沿着x轴移动图形(再次使用javascript)。
我想在用户点击箭头时重绘图表。为生成图表而执行的数据操作过于复杂,无法在客户端执行,我不想一次性发送,因为如果用户从未决定滚动,那将是一种浪费。
相反,在点击时,我想向服务器发送一个请求,以获取绘制图形下一部分所需的新数据。怎么办呢?
注意:我只想要请求数据,而不是新页面。服务器端是Ruby on Rails v.3.0.4。
答案 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操作代码。
以下是一些有用的链接