新手问题 大家前端用嵌入 Erb 还是用 Haml 呢?

dorbod · 2015年11月26日 · 最后由 dorbod 回复于 2015年12月22日 · 5344 次阅读

haml 文件可转换自 erb 文件,但是 erb 文件更像 jsp 那样嵌入 java 到 html,haml 有官方文档,但是 erb 找不到相关的文档,大家有推荐的吗?

使用 erb 较多一些,很少用其它形式的模板。

#1 楼 @greatghoul Ruby China 的 PJAX 是怎么实现的?看 http 响应好像是替换了整一个页面。

erb 不喜欢缩进语法的模板

一年多没有用 slim 了

用了 slim 就回不去了

从静态 html 时代过来的,选 erb,好看懂,空格换行都随意

我从 erb 转到 slim

还是偏向于遵循一定的格式,写出简洁的代码,省时易读,正如 Ruby、Python 对格式缩进的要求。现在再让我去看原始的 html,感觉就是一坨可有可无的标签,淹没了主要内容。而且很多语言都有类似的实现,还算是比较通用的

以前用 Slim,现在用 erb,从来没喜欢过 Haml。erb 没文档是因为它就是在文档里嵌入 Ruby 代码,它甚至不管你的文档写什么(HTML/JSON/YAML...),所以你只要懂 <%= %><% %> 以及 Ruby 就行。HAML 有文档是因为它要教你它的那些语法会如何转换成 HTML。

我写纯前端项目都用 slim 了……

人多的话,重口难调,一些小伙伴觉得缩进要求太严了(正如 .sass,很多人还是更包容的.scss),所以妥协用 erb。个人更倾向于 slim。

从习惯来说,用过 haml ,slim 会爱上,从加载速度、性能要求而言,最好用 erb

下面是一些引用的文章

关于性能

http://graffzon.tumblr.com/post/15303347654/comparsion-of-haml-slim-erb

静态页面渲染

Lets see (making 100 requests and take average value):

Haml - 2.7080000000000015e-05

Slim - 0.9199999999999997e-05

ERB - 1.126999999999999e-05

可见 Slim 的速度是最快的

包含 Ruby 代码的
Again 100 requests and average value:

Haml - 0.00026751000000000005

Slim - 0.00014951999999999994

ERB - 0.00012785999999999993

erb 要稍微快一点,不过两个测试中 haml 都是最慢的。

slim vs haml

http://stackoverflow.com/questions/11390512/new-to-rails-which-one-do-you-suggest-and-why-erb-haml-or-slim Two big advantages of using slim over haml:

  • Slim is currently about eight times faster than haml.

  • Slim supports HTTP streaming, while HAML doesn't.

  • Slim has a more natural syntax: a href="foo.html"

所以要是我的话,我肯定第一个排除 haml 了。当然最终的选择还是根据自己的爱好了

嵌入式开发

0.001 ms 的差别对一个请求几乎没有影响,一个常见的充分缓存的动态页面大概是 50 ms。

在功能差不多的情况下,选模板就看看开发人员觉得哪个爽。这几个都有各自的爱好群体,我目前用着 slim,但是想转回 erb,因为想用更淳朴的 Rails。

前后端分离之前,在用 slim

这样看 haml 是劣势于 实用的 erb 和漂亮的 slim 了

用过 haml,玩过 slim,最后还是回到 erb 的怀抱中

ERB 简单直接,UI 不懂 Ruby 也能看的明白一个大概。

#9 楼 @greatghoul 我看了一下响应,这里是替换整一个 html 的内容,包括 javascript 的引用也被替换了,不会影响事件监听什么的吗?

#24 楼 @zonghua 可不可以是返回整个 html 的内容,然后只替换 body

強制縮進令我噁心,我只能用 erb

#27 楼 @hxh1246996371 所以我用 ruby 不用 python 啊

我是这个讨论发起者,是一个初学者,我很意外收到 30 条回复,大家在里面相互艾特,非常活跃。可是我却没有参与其中,可能是因为提问题时候实践少很多东西还不懂,但是作为社区中一员,理应积极互动,而不是提出问题之后就再不理睬,惭愧。

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