開発Blog

ブラウザキャッシュを利用して少しでもレスポンス向上

投稿日:2011-08-31 更新日:

こんにちは、開発本部の大西です。

最近の流れから、社内のネットワーク上でなく、インターネット上のSaaS/Cloud環境にintra-martを稼働させてアクセスしたりすることが多くなってきました。

そうすると、環境によってはネットワークの遅延が問題になることがでてくるようになってきました。
また、intra-mart自体もIM共通マスタやIM-WorkflowなどAjaxを多用する機能が増えてきており、
一つの画面を表示するのに、大量のJSファイルやCSSファイルや画像ファイルなどの静的ファイルを
読み込むようになっており、1画面を表示するためのリクエスト数が増加傾向にあります。

現状、この状況を解決する一番簡単な手段として、クライアントのブラウザのキャッシュ機能を有効活用することで、見かけ上のレスポンスを向上させることができます。

つまり、ブラウザにキャッシュされては困る、intra-mart上のプログラム上で生成されるコンテンツ自体はキャッシュさせずに、変更される頻度が低いクライアントサイドのJavaScriptファイル、CSSファイル、画像ファイルをブラウザ側にキャッシュさせ、毎回サーバ側に取得させなくすることで、ブラウザからのリクエスト数を減少させて、サーバの負荷を低減させ、見かけ上のレスポンスも向上させることが可能です。

具体的な対応方法としては、

WebPlatformで、ResinをWeb/APサーバとして利用している場合

AppRuntimeのconf/http.xmlの「<web-app id="/imart" ・・・」の<web-app>タグ内に
以下の設定を追記してください。

この設定で、拡張子が、js,css,png,gif.jpgの静的コンテンツが1D = 1日間(24時間)、ブラウザにキャッシュされ、キャッシュが存在した場合は、ブラウザはキャッシュを利用します。

また、これに合わせて、転送時のファイルサイズをGzip圧縮で圧縮する設定をあわせて行うことで、転送時間を抑えることができ、非常に効果的ですので、上記設定と合わせて設定していただくことを推奨致します。

GZIP圧縮の設定は、上記と同じ<web-app>タグ内に

を記載することで、APPサーバ側でGZIP圧縮することが可能になります。

Apacheを利用している場合

Apacheのconf/http.confに

を記載することで、上記と同じ動作になります。
なお、GZIP圧縮の設定は以下になります。

参考までに、私のローカル環境で確認したところ、
IM-Workflowの申請画面の根回しメールにある検索リンクを押下してから、
ユーザ検索画面が表示されるまでのリクエスト数とレスポンスタイムは以下のようになりました。

上記設定なし             :リクエスト数:142 レスポンスタイム:2.36秒
上記設定あり(1回目のリクエスト) :リクエスト数:117 レスポンスタイム:1.49秒
上記設定あり(2回目のリクエスト) :リクエスト数:12  レスポンスタイム:0.65秒

とローカル環境でも効果はありますので、どの環境でも効果はあると思います。

なお、注意点として、上記に説明している通り、上記設定を行った場合、静的コンテンツを
指定期間ブラウザにキャッシュすることになりますので、今後のパッチの適用等でCSSやJSファイルに変更があった場合にパッチ適用しても有効にならず、不具合が発生する場合がありますので、その場合は、ブラウザのキャッシュを消去して頂く必要がありますので、ご注意ください。

-開発Blog
-

執筆者:


comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

関連記事

no image

intra-mart Advent Calendar 2013 第13日:ログイン後に任意の画面を開く方法

この記事は、intra-mart Advent Calendar 2013 第13日の記事です。 intra-mart Advent Calendar 2013 第1日目の「iAPでもiWPみたいにU …

no image

業務スケルトンのバージョンアップ

初めまして。開発本部の齊藤悠です。 本日、eBuilderに組み込まれております「業務スケルトン」のバージョンアップを行ないましたので更新内容をご紹介させて頂きます。 今回の更新では、JavaEE開発 …

no image

多言語対応について

最近、日英中以外の言語を増やしたいというお問い合わせを受けることが多くなってきましたので、その方法等をまとめさせて頂きます。 intra-martにおける多言語対応とは? intra-mart Ver …

no image

Accel Kaiden! のガジェットで申請書をつくってみよう!

今回は、Accel Kaiden ! のガジェットを利用して、IM-Workflowで利用できる申請書を作成する方法をご紹介します。 【内容】 「ガジェット」とは? ガジェットを組み合わせて申請書を作 …

no image

intra-mart Advent Calendar 2013 第5日:ViewCreatorは、データベース以外も覗けますよ!

この記事は、intra-mart Advent Calendar 2013 第5日の記事です。 ViewCreatorは、データベースのテーブルを参照するツールとご紹介してきましたが、実は、Accel …