開発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

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

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

no image

SVF(SuperVisualFormade)とintra-martの連携について

※下記内容は、過去のintra-mart(Ver4.3以前)に関する内容です。最新のintra-martでは、異なる情報であることがありますので、ご注意ください。 最近、SuperVisualForm …

no image

intra-mart WebPlatform/AppFramework Ver7.2について その4

おかげ様で、intra-mart WebPlatform/AppFramework Ver7.2を無事リリースさせて頂きました。 今回は、BPM関連の機能追加について、ご紹介いたします。 BPMでは、 …

no image

Formaでのスクリプト開発生産性向上

先日開催されました技術者交流会にて、クライアントサイドスクリプトを利用したFormaDesignerの画面開発が難しいという声を多くいただきました。 そこで、今回のブログ記事では、交流会の場で挙がった …

no image

iCEC2011 業務スケルトン

4/26に開催された「intra-mart Certified Evangelist Conference 2011(iCEC2011)」での講演資料を公開します。 業務スケルトン 02_Busine …

まだデータがありません。

RSSRSSRSSRSS