在Rails应用程序中,有时您在动作中使用重定向...
redirect_to :controller => 'sessions', :action => 'new'
我想知道这是不是很糟糕,因为它向浏览器发送了302状态,然后浏览器发出了一个全新的请求.这是一个额外的来回.
渲染模板会更好吗?
render :template => 'users/new'
小智.. 10
使用重定向而不是渲染的主要原因是为了确保幂等不变量.这基本上意味着如果您从POST或DELETE修改某些内容,那么您应该重定向到下一页.否则,如果有人试图更新,他们可能会重做变异操作.它还使用户更容易,因为他们总是可以为特定页面添加书签.如果您使用POST到达当前位置,则不一定如此.
但是,它的效率会略微降低 - 尽管在这种情况下我会更关心应用程序的可用性.
使用重定向而不是渲染的主要原因是为了确保幂等不变量.这基本上意味着如果您从POST或DELETE修改某些内容,那么您应该重定向到下一页.否则,如果有人试图更新,他们可能会重做变异操作.它还使用户更容易,因为他们总是可以为特定页面添加书签.如果您使用POST到达当前位置,则不一定如此.
但是,它的效率会略微降低 - 尽管在这种情况下我会更关心应用程序的可用性.