Post 回复时间太长
客户端Ajax Javascript代码正在使用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 ----------------------------------------------
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