fc2ブログ

2023.08 «  - - - - - 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 » 2023.10
TOP > Rails 2.0・その9(ブラウザのロード時間を短くなったように体感させる)

 ← Rails 2.0・その10(ruby-debugコマンドマニュアルv.0.10.0 デバッグの方法が簡単に) | TOP | Rails 2.0・その8(javascriptファイルやcssファイルをひとまとめに)

Rails 2.0・その9(ブラウザのロード時間を短くなったように体感させる)  

2008年02月10日 ()
今の世の中、ビジュアル系(ローリー?)のページが増えました。

1つのページで画像、javascript、スタイルシートファイルをやたらたくさん読み込む場合が多いですが、ブラウザの体感速度をカンタンに上げられます。

ただし、条件があって、同じ画像や javascript やスタイルシートファイルを、複数のサーバに分散させておかなくてはなりません。

さてそれが出来たら準備万端

以下の1行を config/environment.rb のいちばんオケツ(最後)ぐらいに追加します。

ActionController::Base.asset_host = "assets%d.example.com"



そして、Webサーバを再起動します。

そうすると、1つのページの中にある、image_tag, javascript_include_tag, stylesheet_link_tag ファイルでしていされたファイルのドメインを、勝手に以下のどれかに分散して割り振ってくれます。

assets0.example.com
assets1.example.com
assets2.example.com
assets3.example.com

・・・うーん、うーん、いつでも4つのサーバを用意しろということなのでしょうか。

と悩む前に、上記の記述をカスタマイズすることができます。

例えば、4つのサーバではなくて、

assets1.example.com
assets2.example.com
assets3.example.com

という3つのサーバだけでいいのよ、という場合は、

ActionController::Base.asset_host = Proc.new { |source| "assets#{rand(3) + 1}.example.com" }



とすればいーよー、てな感じです。

しかし、この分散方法よりかは、ロードバランサーに頼った方がイイと個人的には思います。

なぜかというと、各サーバの負荷のバランスを変えられないからです。(各サーバとも同じ負荷だけ掛かる)

でもコードの書き方に依っては、ロードバランサーっぽく動作させるのも可能でしょうけどね。

さらにさらに、image_tag ファイルは images.example.com からダウンロードしてきて、
javascript_include_tag ファイルは、javascript.example.com からダウンロードしてきて、
その他のファイル(stylesheet_link_tag など)は、stylesheets.example.com からダウンロードしてきたい、という場合は、

ActionController::Base.asset_host = Proc.new { |source|
  if source.starts_with?('/images')
    "http://images.example.com"
  elsif source.starts_with?('/javascripts')
    "http://javascripts.example.com"
  else
    "http://stylesheets.example.com"
  end
}



ですわね。


【広告】

[2008.02.10(Sun) 00:08] [2.0]その他Trackback(0) | Comments(0)
↑TOPへ

 ← Rails 2.0・その10(ruby-debugコマンドマニュアルv.0.10.0 デバッグの方法が簡単に) | TOP | Rails 2.0・その8(javascriptファイルやcssファイルをひとまとめに)

COMMENT

COMMENT POST















管理者にだけ表示

 ← Rails 2.0・その10(ruby-debugコマンドマニュアルv.0.10.0 デバッグの方法が簡単に) | TOP | Rails 2.0・その8(javascriptファイルやcssファイルをひとまとめに)