今さらながら Rails4 の新機能の一つである turbolinks を試してみました。
解説なんかは僕がするよりも様々な記事がもうあるので、あまり必要ないと思います。
- Rails 4.0 に入る予定の turbolinks について調べた
- Rails4 Turbolinksのメモ #mtsmhack
- Rails4でデフォルトで入るturbolinksがオープンリダイレクタと合わさると何でもできてかなり危険
どれも良い記事でした。
ということで、個人的感想とか
- production環境より development環境での効果が高い気がした
- 体感ほんとに早い - development環境
- だいたいそのままで動く。動かなくなる Javascriptはやっぱりある。
- fancyboxとか、でも、そういうのはそもそもRailsで扱いずらいものばかり。
- CSSやJavaScriptが切り変わるリンクには HTMLタグに data-no-turbolink属性をいれればよい。いれないと悲しいことになります。
インストール
一緒に jquery.turbolinks も入れておきました。 これは簡単に言うと、”なにもしなかったら動かなくなってしまうもの”を減らすように工夫したものだと思います。 なんとなくで具体的に書くと、readyイベントでやってることをページロードするときにも実行するようにするんじゃないかと思います。(たぶん)
jquery.turbolinks は turbolinks に依存してないのでそれぞれGemfileに入れる必要がありました。
gem 'turbolinks`
gem 'jquery-turbolinks'
//= require turbolinks
//= require jquery.turbolinks
といった感じです。
感想をもうちょっと
体感ほんとに早い
Rails3 でも試せるので、体感しておくのは良いと思います。設定はとても簡単なので、どういうものかは知っておいたほうが今後の方針に役立ちます。 個人的には、規模が大きいプロジェクトでは develpoment 環境でだけでも使いたいです。
動かなくなったプラグイン
試したプロジェクトは fancybox という jQueryプラグインが使用されてる箇所がありましたが、ここが動かなくなりました。 そもそも、Railsではこれはすごく扱いにくくて置き換えてやろうしてる部分で放置してるうちに次々と使われてしまってる問題児です。 修正するにはちょうどよい機会。
まとめ
Rails的じゃないところほど問題がでやすい機能という点ですごく面白いなー。と、思いました。