【问题标题】:Rails action is calling only once, but i call it every second in my ajaxRails 动作只调用一次,但我在我的 ajax 中每秒调用一次
【发布时间】:2016-09-15 10:03:00
【问题描述】:

标题不正确,但您可能理解。 我在 .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 只调用一个,第一个请求,不调用下一个。 错误在哪里? (用代码,不是英文))

【问题讨论】:

  • 在哪个 .coffee 文件中?在哪个控制器中?
  • 是的,在 /assets/javascripts/mainpage.coffee 中。我在服务器控制台中看到请求但是 get_current_result_number 操作中的代码只运行一次
  • 在 setInterval 中调用 ajax,而不是在 ajax 中。 setInterval($ajax_function here, 1000);

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


【解决方案1】:

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

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

setInterval(getCurrentResults, 1000)

【讨论】:

    猜你喜欢
    • 2011-08-06
    • 2016-05-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-20
    相关资源
    最近更新 更多