以前看到过别人写文说前台页面少用如 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