Rails 前台的 views helper 到底慢不慢?

bony · 2012年01月04日 · 最后由 xdite 回复于 2012年02月04日 · 4401 次阅读

以前看到过别人写文说前台页面少用如 link_to,image_tag 等这样的 helper,因为它们的实现很慢,会影响整个页面的 render。 但是如果不用 link_to 这类 tag 的话,感觉页面就写的很不 rails,风格上差异很大,而且写起来也不爽,又需要写一堆的 html。 这些个 helper 到底是用还是不用呢?或者就干脆用 haml 或者 slim?

不觉得 helper 特别慢,过去 link_to 被人诟病的原因是 rails2 的 route 性能不高,现在 rails3 不知道如何,我是尽量使用 helper 的

@fsword 我也是一直尽量使用 helper。

首先 link_to 这类 rails 方法 肯定是没有直接写 标签来的快的。但是运行速度上影响不大,但是开发效率上大大增强。RoR 的一个很大优势就是在于 开发速度快,维护性好。helper 方法 帮助你在页面上渲染。开发上得到的好处弥补了运行速度的劣势。另外你说的有个误区,haml 是比 普通 erb 渲染更慢的,它页面的渲染 仍然是在 ruby 的基础上执行的。但是 haml 语法上比 erb 更简洁。slim 没用过。

我觉得如果你非要纠结这些速度上的问题的话,那就用 html 标签写代码试试吧。

弱弱的问一下楼主当前的项目在使用 helper method 上遇到瓶颈了嘛?

@lgn21st 木有,木有。。纯属强迫症。。

不慢,从 ruby-china 的使用来看,这些 Helper 不是问题

第一,在性能未出现问题的时候,就考虑优化,是一个坏习惯,叫做“过早优化”。 第二,不管是 erb 还是 haml,link_to 都依然是 helper 方法,没有区别。 第三,常见性能的问题,主要集中在 IO 上。

UrlHelper 不是瓶颈

用 helper 还有个好处是测试的时候可以提早发现问题

“还有个好处是测试的时候可以提早发现问题"

@Rei 此话怎讲?

#10 楼 @psvr 比如路由改了,点开一个页面,原先的 url_helper 抛错,就知道页面该改了。

某老项目到处是奇葩的字符串 url 拼接,全靠 grep 来查,结果还是时不时被产品报 bug:链接 404 了

#11 楼 @Rei 谢谢,很有道理。突然发现我们两个人都拿着枪指向观众 XD

huacnlee 提问要有方法 提及了此话题。 04月03日 10:56
需要 登录 后方可回复, 如果你还没有账号请 注册新账号