ハートレイルズの技術スタッフによるブログです。

ハートレイルズの技術スタッフによるブログです。
ウェブサービス、スマートフォンアプリの制作に関連する技術的な情報を発信していきます。

2013年3月14日木曜日

Rails4 の Turbolinks について最低限知っておきたいこととその他

Rails4 で Turbolinks という仕組みが導入されることは比較的広く知られつつあります。

これは画面遷移の高速化を目的としたもので、
  1. リンクのクリックを全部乗っ取る
  2. 同一ドメイン内での遷移だったら Ajax リクエストをして body 内をまるっと書き換える
  3. history.pushState して状態を保存
という (少々いかがわしい) 動作をするものです。なお history.pushState が使えない環境では普通のリンクとして動作します。 Rails 3.2 環境などでも Gemfile に

gem 'turbolinks'

などと書いておけば使うことができます。気軽に画面遷移が高速化できるのですが、最低限以下の一項目だけは知っておく必要があります。

2013年1月28日月曜日

SPDY の紹介と nginx で SPDY を使う方法

みなさん、はじめまして。昨年末に入社しました やまぎし という者でございます。Twitter 等はやっていない、ということにしておいてください。ともかく何卒よろしくお願いいたします。

さて、十数年もの間 1.1 のまま変わらず有り続けていた HTTP の規格ですが、この頃は新たな風が吹いており、HTTP/2.0 の存在が見えてきました。まだワーキンググループが発足したばかりであり、具体的に変わるのは当分先になるであろうとは思いますが、米 Google 社の提唱している SPDY が HTTP/2.0 に取り入れられる形が濃厚であろうと話されています。

SPDY は先述した通り米 Google 社が提唱している規格です。長年使われてきている HTTP/1.1 は、歴史も深くそれだけ安定した規格ではありましたが、一度の接続では一つの要求しか扱えません。2000 年代前半の頃のように HTML 文書といくつかの画像ファイルを読み込むだけの簡素なウェブページではそれによって生じる問題はそうありませんでしたが、2000 年代の中頃から現われ始めた XMLHttpRequest 等を使った複数のリソースを動的に取得し、ウェブページの内容を操作するようになると、細かな通信のボトルネックが無視できないようになってきました。この問題に効率的に対応するために産まれたのが SPDY です。SPDY では一度の接続で複数の要求を扱うことができるので、読み込むリリースが多ければ多いほど、SPDY を使った場合と使わなかった場合の速度の差は大きくなります。