Railsアプリケーションを高速化する3つの簡単なヒント、パート1

多くの人が、Webアプリケーションをより速く実行するためのガイドを作成していることを知っています。 ただし、Ruby on Railsの機能を失うことなくアプリケーションを大幅に高速化するのに役立つ、最もシンプルで最も効果的な方法に焦点を当てます。

ヒント#1:静的コンテンツを取得する

ヒント#2:クリーンアップ

ヒント#3:ページ全体をキャッシュする



ヒント#1:静的コンテンツを取得する

1つのWebアプリケーションが複数のjavascriptとcssスタイルを一度に読み込むことがよくあります。 これにより、Webブラウザーが新しいファイルのたびに新しい接続を開くため、ページのロードが大幅に遅くなります。

解決策は、すべてを1つのファイルに結合することにより、ページの外部リソースの数を減らすことです。 AssetPackagerプラグインはこれに役立ちます



私たちは置きます:

script/plugin install git://github.com/sbecker/asset_packager.git







config / asset_packages.ymlの例:

---

javascripts:

- base:

- prototype

- effects

- controls

- dragdrop

- application

- secondary:

- foo

- bar

stylesheets:

- base:

- screen

- header

- secondary:

- foo

- bar







そして、rakeタスクを実行します:

rake asset:packager:build_all







次に書くJavaScriptについて

<%= javascript_include_merged :base %>



<%= javascript_include_merged 'prototype', 'effects', 'controls', 'dragdrop', 'application' %>







スタイルの場合:

<%= stylesheet_link_merged :base %>



<%= stylesheet_link_merged 'screen', 'header' %>







結果として、開発モード用の古いコードを取得します。例えば:













<link href="/stylesheets/screen.css" type="text/css" />

<link href="/stylesheets/header.css" type="text/css" />







そして、実動モードでは次のようになります。





<link href="/stylesheets/base_packaged.css?123456789" type="text/css" />







負荷をさらに小さくするために、すべての静的ファイルを別のホストに転送します(理由はこちらです )railsでは、次の行をconfig / environment / production.rbに追加するだけです。

config.action_controller.asset_host = "http://assets.example.ru"







すべてのimage_tag、javascript_include_tagなど このホストを指します。



UPD :プラグインの代わりに、<%= javascript_include_tag:all ,: cache => true%>、more details hereを使用できます 。 ありがとう



All Articles