POST响应耗时太长

时间:2009-06-24 23:11:14

标签: post xmlhttprequest response delay

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

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

Time(ms)     From          To             Info
------------------------------------------------------------------------
0.0          client        server         [SYN]
11.7         server        client         [SYN,ACK]
11.8         client        server         [ACK]
12.0         client        server         [POST]
12.1         client        server         Continuation
39.0         server        client         ACK
46.0         server        client         ACK
150.0        server        client         TCP segment of reassembled PDU
311.0        client        server         ACK
324.0        server        client         HTTP/1.1 200 OK (text/html)
512.0        client        server         ACK

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

cmd=getCurXY&chan=CH_L_JX

我现在发送的回复内容很简单:

cmd=noresponse

响应以Transfer-Encoding: chunked发送。

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

1 个答案:

答案 0 :(得分: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

中找到更多信息

问候。