在下面的代码中,
slow
动作需要约145ms,然后
fast
操作需要大约35ms,在这两种情况下,操作都由一个远程(ajax)链接触发,该链接会导致呈现相同的js模板。
为什么没有
respond_to
街区?使用一个非平凡的模板,效果更加明显(4-6倍的差异)。所有这些都处于开发模式中;我还没有在生产中测量,但我很好奇这里可能会发生什么。使用
响应到
即使没有基于请求格式的逻辑?
class FooController < ApplicationController
def index
end
def slow
benchmark 'slow' do
render :bar
end
end
def fast
benchmark 'fast' do
respond_to do |format|
format.js {render :bar}
end
end
end
end
bar.js.erb:
var div = document.createElement("div");
div.innerHTML = "foo";
document.getElementsByTagName('body')[0].appendChild(div);
index.html.erb:
<%= link_to 'slow', '/foo/slow', remote: true %>
<br/>
<br/>
<%= link_to 'fast', '/foo/fast', remote: true %>