Rails Rails 3+ 默认使用 erubis ?

richarddong · 2012年04月25日 · 最后由 mingyuan0715 回复于 2013年04月16日 · 4566 次阅读

看见有人这么说,是这样吗?

是不是在 Rails 3 上所有 .erb 文件,都是默认用 erubis?

因为好像 erubis 是相比传统 erb,eRuby 最快的吧?

另外感觉 Haml,Slim 之类的除了代码看上去简洁一些以外,没有任何性能上的优势对吗?

我们的网站正在考虑重构代码,下一步选择什么工具来做 template 比较好呢?

谢谢~~

是的 erubis 兼容 erb 并且可以自动过滤敏感标签。。

支持 erb,原因看这里

#3 楼 @ywjno 到底是什么原因呢,我跟随你的连接,但是没有看到你对原因的解释。

我觉得一般情况下,模板引擎的性能不要特别考虑。因为一般都会用到缓存,而缓存编译过的片段(fragment)是最好的,纯字符串是大多数缓存的原生类型;如果做对象缓存,还得多一步序列化或反序列化,比较耗时。

仅仅是理论哈,我没有做过性能测试。

#4 楼 @lgn21st,或许我应该写不支持 haml 写法才对?

使用 Haml 撰寫 HTML 的壞處

如此 powerful 的 markup language 為何沒有風行?反倒是原先屬於副功能的 Sass 大紅特紅。

原因就在於 Haml 的特性:不只需要被機器 compile,它也需要被人腦 compile。

HTML 本身就是一門相當直觀的 markup language。

在撰寫 Haml 時,排版雖然相當輕鬆。但接手維護 Haml 版面的人,卻通常痛苦不堪。因為「非常不直觀」。

這也是 Haml 的反對者,批評最力的地方。

多數人無法接受維護不直觀的「任何東西」,加上撰寫 Haml 需要另外學習特殊的 syntax。沒有壓倒性的好處,一般人是不會貿然進行技術投資的。這也是為什麼 Haml 始終處是小眾技術的主要原因。

#6 楼 @ywjno 谢谢,明白你的意思了,原来你的意思时支持 Erb,不支持 Haml,我对 Haml 的看法跟你的观点一致。

楼主的主题帖的上下文时对照 Erb 和 erubis,我理解时 erubis 是一个比 Erb 效率更高而且用法相同可以无缝切换的模板引擎,所以推荐在用 erb 的任何场景下,都推荐用 erubis 取代之。

一下子从楼主的 erb v.s. erubis 到你的挺 erb,否 haml,我没有反应过来,呵呵。

现在觉得没有显式的 end,单靠缩进来表示层级实在太费劲了(Python 党退散><),特别是开始和结束不在同一屏的时候……(Vim 有没有插件可以显示缩进层级的?)

Erubis / Haml / Slim 的性能:https://github.com/stonean/slim

结论:Slim >= Erubis >>> Haml

#9 楼 @fredwu Slim is nearly as fast as Erubis (which is the fastest template engine),slim 上的这句话的意思明明是 slim<erubis 嘛,只是差距比较小。

需要 登录 后方可回复, 如果你还没有账号请 注册新账号