Post 回复时间太长

Post 回复时间太长,post,xmlhttprequest,response,delay,Post,Xmlhttprequest,Response,Delay,客户端Ajax Javascript代码正在使用XMLHttpRequest发送POST请求,但我在获得响应时延迟了0.5秒,我试图找出原因,因为我希望它更快,更像是0.2秒。两个端点位于同一个intranet中,客户端通过以太网直接连接,服务器使用802.11b 我使用Wireshark嗅探到以下TCP事务: Time(ms) From To Info ----------------------------------------------

客户端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 我现在发送的回复内容很简单:

cmd=noresponse
响应以
传输编码:chunked
的形式发送

能否以某种方式加快此交易?

为什么需要整整半秒钟?

首先,我强烈建议您将此gem添加到您的gem文件中的开发组gems中

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

另外,您真的需要使用Rails控制器来管理这些请求吗?这类项目的一个很好的实现是使用中间件。它仍然是ruby代码,但并没有加载所有Rails特性,从而使响应速度更快。您可以在中找到更多信息


问候。

您是否尝试过通过以太网直接连接?TCP堆栈将数据包分割开来真的很奇怪——MTU配置错误?
group :development, :test do
    gem 'rack-mini-profiler'
end