【发布时间】: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