作者giive (lala)
看板Ruby
标题Erubis :快三倍的 erb
时间Mon Nov 6 12:02:37 2006
内有图表
http://lightyror.blogspot.com/2006/11/erubis-erb.html
从这个网页看到的好东西。一个语言一开始速度不佳没关系,只要一红起来,一定会有人帮你加快速度的。JAVA 一开始是这样没错,看起来 Ruby on Rails 渐渐要开始脱离速度尚可的名声了。Webrick 太慢了,所以 Zed Shaw 写了 Mongrel 。ERB 速度尚可,就有人写 Erubis ,让你的 ERB 可以飞快的执行没有负担。
Erubis 是用 Ruby 写的,但是速度居然比用 C 写的 eruby 还要快。最重要的是,他可以不用改写现有的 Rails code ,就直接让 Rails 使用,这就相当的可怕了。下图是 ERB 跟 Erubis 的比较图我们可以发现到他的速度几乎是 ERb 的三倍快。
安装
至於安装方式的部份,我们用 gem 来安装
gem i erubis
1. 你可以在 application.rb 或是 config/enviroments/ 里面加入
require 'erubis/helper/rails'
suffix = 'erubis'
ActionView::Base.register_template_handler(suffix, Erubis::Helper::RailsTemplate)
#Erubis::Helper::RailsTemplate.engine_class = Erubis::EscapedEruby ## or Erubis::PI::Eruby
#Erubis::Helper::RailsTemplate.default_properties = { :escape=>true, :escapefunc=>'h' }
2. 将你的 .rthml 改成 .erubis
3. 最後要注意,layout 里面 yield 的部份要改成以前的 @content_for_layout
测试结果
根据我的测试,的确感觉比较快,但是快多少很难说,毕竟 render 所占的部份不重。相容度的地方,目前一般页面完全没有问题, 除了 @content_for_layout 跟修改 template 档名以外,完全不用改写 code 。Cache 跟 AJAX 的部份还不确定有没有问题,如果没问题,那这个东西一定会大红起来。
题外话,这个东西给我的感觉,想做成一个 Univeral 的 template engine ,不只支援 Ruby ,PHP,JAVA ,Javascript,C,Scheme 都有支援,不过支援程度还很小儿科啦@@!
--
lighty RoR 是一个介绍 lighttpd , SQLite , Ruby and Rails 的 Blog
http://lightyror.blogspot.com/
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 61.218.90.242
※ 编辑: giive 来自: 61.218.90.242 (11/06 12:08)
※ 编辑: giive 来自: 61.218.90.242 (11/06 12:08)