ruby-on-rails – 如何/何时’after_filter’工作/运行?

前端之家收集整理的这篇文章主要介绍了ruby-on-rails – 如何/何时’after_filter’工作/运行?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在使用Ruby on Rails 3.1,我想知道(出于性能原因)是否在渲染视图文件之后运行after_filter.也就是说,当用户访问我的应用程序URL时,他/她应该显示的相关视图文件在after_filter运行之前呈现,或者after_filter在渲染视图文件之前运行?

换句话说,应用程序服务器在运行after_filter之前开始向用户发送渲染的视图数据,或者它等待运行after_filter方法,然后才发送该视图数据?

PS:我打开这个问题,因为我想运行一些系统更新(请注意:这些更新不会影响视图的输出数据,并不会对视图“使用”/“必要”),而不影响结束用户体验(例如:缓慢加载我的应用程序网页).

解决方法

您必须注意到对您的服务器的请求是完全一致的,并以其自身的线程运行.

如果将代码放在after_filter中,这将延迟整个请求:总结一下,如果线程还活着,页面不会传递.

这就是为什么你会发现很好的插件,如DelayedJob和Resque,他们工作在一个并行进程,不会影响你的应用程序.

为了回答您的原始问题,在处理视图后会触发after_filter.

这有时是一个麻烦,这就是为什么people created some before_render filters.

猜你在找的Ruby相关文章