Rails / JS - 在没有页面刷新的情况下获取变量

时间:2013-12-13 06:55:39

标签: javascript jquery ruby-on-rails ajax ruby-on-rails-4

在我的应用程序中,我有一个变量,它是一个整数。变量不断变化,我希望它总是在用户在网站上时显示当前整数,而不必不断刷新页面。

我知道有几种方法可以做到这一点,但是最简单,最不引人注目的方法是什么?

为了方便起见,我们将其设为整数

@foo = Post.all

我会提供一些代码,但在其他地方研究后,我仍然无法尝试解决这个问题。

感谢。

1 个答案:

答案 0 :(得分:3)

据我所知,如果没有客户请求,服务器无法向客户端发送信息。因此,您可以为此设置常规的AJAX请求。 首先,您应该在控制器中单独执行操作,在json中返回整数

def foo_update
  @foo = some_new_value
  render json: @foo
end

在.js文件中设置Interval和AJAX请求

var ajax_foo_update = function(){
  $.get("/controller_name/foo_update",function(data){
     $("#elem_to_place_foo").html(data.integer);
  });
}
$(function(){
  setInterval(ajax_foo_update, 10000);
});

此功能将每10秒更新一次foo。另外,你@foo应该看起来像{integer:5} 不要忘记写正确的路线。