客户端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
发送。
这笔交易能否以某种方式加速? 为什么需要整整半秒?
答案 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
中找到更多信息问候。