以前看到过别人写文说前台页面少用如 link_to,image_tag 等这样的 helper,因为它们的实现很慢,会影响整个页面的 render。 但是如果不用 link_to 这类 tag 的话,感觉页面就写的很不 rails,风格上差异很大,而且写起来也不爽,又需要写一堆的 html。 这些个 helper 到底是用还是不用呢?或者就干脆用 haml 或者 slim?
不觉得 helper 特别慢,过去 link_to 被人诟病的原因是 rails2 的 route 性能不高,现在 rails3 不知道如何,我是尽量使用 helper 的
首先 link_to 这类 rails 方法 肯定是没有直接写 标签来的快的。但是运行速度上影响不大,但是开发效率上大大增强。RoR 的一个很大优势就是在于 开发速度快,维护性好。helper 方法 帮助你在页面上渲染。开发上得到的好处弥补了运行速度的劣势。另外你说的有个误区,haml 是比 普通 erb 渲染更慢的,它页面的渲染 仍然是在 ruby 的基础上执行的。但是 haml 语法上比 erb 更简洁。slim 没用过。
我觉得如果你非要纠结这些速度上的问题的话,那就用 html 标签写代码试试吧。
第一,在性能未出现问题的时候,就考虑优化,是一个坏习惯,叫做 “过早优化”。 第二,不管是 erb 还是 haml,link_to 都依然是 helper 方法,没有区别。 第三,常见性能的问题,主要集中在 IO 上。
http://blog.xdite.net/posts/2012/01/15/how-to-design-helper-3/
今天寫了這一篇 Helper AntiPatterns