4

客户端 Ajax Javascript 代码XMLHttpRequest用于发送 POST 请求,但我得到响应的延迟为 0.5 秒,我试图找出原因,因为我希望它更快,更像 0.2秒。两个端点都在同一个内网中,客户端通过以太网直接连接,服务器使用 802.11b。

使用 Wireshark 我嗅探了以下 TCP 事务:

时间(毫秒) 从 到 信息
-------------------------------------------------- ----------------------
0.0 客户端服务器 [SYN]
11.7 服务器客户端[SYN,ACK]
11.8 客户端服务器[ACK]
12.0 客户端服务器 [POST]
12.1 客户端服务器续
39.0 服务器客户端 ACK
46.0 服务器客户端 ACK
150.0 重新组装的 PDU 的服务器客户端 TCP 段
311.0 客户端服务器确认
324.0 服务器客户端 HTTP/1.1 200 OK (text/html)
512.0 客户端服务器确认

实际的帖子和回复真的很短。基本上 POST 请求的内容是:

cmd=getCurXY&chan=CH_L_JX

我现在发送的响应内容很简单:

cmd=noresponse

响应以Transfer-Encoding: chunked.

这笔交易能否以某种方式加速?
为什么需要整整半秒?

4

1 回答 1

0

Firstable 我强烈建议您将此 gem 添加到您的 gemfile 中的开发组 gem。

group :development, :test do
    gem 'rack-mini-profiler'
end

它允许您在实现 AJAX 请求或来自 Web 浏览器的任何类型的请求时跟踪时间事务。还要记住,Webrick(Rails 使用的默认开发服务器)是一个非常慢的开发服务器,所以如果可以的话,我建议你使用 Puma 作为开发服务器,而 Unicorn 作为生产服务器。

另外,你真的需要使用 Rails 控制器来管理这些请求吗?此类项目的一个非常好的实现是使用中间件。它仍然是 ruby​​ 代码,但它不会加载所有 Rails 功能,从而使响应更快。您可以在http://railscasts.com/episodes/319-rails-middleware-walkthrough中找到更多信息

问候。

于 2013-11-01T22:37:20.217 回答