【问题标题】:Rails takes extremely slow time to process ajax jsonRails 处理 ajax json 的时间非常慢
【发布时间】:2017-09-28 04:29:00
【问题描述】:

我的 Rails 应用程序花费大量时间来处理 ajax 请求。这是我的测试代码

def test
  respond_to do |format|
    format.json { render json: '{"text" : "simpleJson"}' }
  end
end

根据服务器日志,我的应用只需要 1ms 即可执行请求:

但在浏览器中,总是在大约 20k+ 毫秒内收到响应

当我将 json 更改为无返回值 (format.json { render json: {} }) 时,请求只需要约 18 毫秒。所以我猜Rails在将json发送回客户端时会遇到一些麻烦(因为服务器日志说方法测试执行得非常快)。但我不确定,因为我对 ruby​​ 和 rails 很陌生。我的本地主机由 puma 3.10.0 运行。

任何帮助将不胜感激。

【问题讨论】:

  • 我猜这不是有效的 JSON。试试render json: {"text" : "simpleJson"}
  • 可能与您的问题无关,但在这种情况下为什么不是GET?
  • @Pavan 如果你使用render json: {"text" : "simpleJson"} @kaspertine 会导致语法错误,我不知道为什么,但是如果我在我的 routes.rb 中定义 get 'books/test' 并调用 get ajax,它将通过 id 路由到 get book 方法,在这种情况下,“test”将成为 id
  • 我想不是。你有错误吗?
  • @Pavan ruby​​ throw this error ,我确定我的代码是有效的 json 字符串,因为 firefox 不会抱怨响应,如果我使用 render json: '{text : "simpleJson"}' ,它会抱怨我响应。

标签: ruby-on-rails


【解决方案1】:

从 puma 服务器更改为 webrick 解决了我的问题,但是在做了一些谷歌之后,我的问题的根本原因可能是因为我在 Window Subsystem Linux 上运行 rails。目前,puma 在 WSL 中运行缓慢。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-11-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-26
    • 2021-11-11
    相关资源
    最近更新 更多