Rails动作只调用一次,但我在ajax中每秒都调用它

时间:2016-05-18 18:41:19

标签: javascript ruby-on-rails ruby ajax coffeescript

标题不正确,但您可能会理解。 我在.coffee中有这段代码:

 $.ajax(url: "/get_current_result_number").done (html) ->
    $("#results").append html
    setInterval( $.ajax, 1000 )

在控制器中:

def get_current_result_number
  respond_to do |format|
    format.html { render :xml => "<progress value=#{$status[:current]} max=#{$status[:all]} ></progress>" }
  end
end

全局变量$ status有progresbar的数据,我想实时看到它,没有刷新页面。我永久地在rails控制台中看到请求。操作get_current_result_number只调用一个,第一个请求,不调用next。 错误在哪里? (代码中,不是英文))

1 个答案:

答案 0 :(得分:3)

$.ajax不是您定义的ajax调用。你可以像这样重写它:

getCurrentResults = ()->
  $.ajax(url: "/get_current_result_number").done (html) ->
    $("#results").append html

setInterval(getCurrentResults, 1000)