javascriptでの環境依存変数の管理方法
javascriptを使用しているときに、環境に依存する設定(例えばコンテキストパス等)が出てくる。
そんな時に、いろんなソースに環境設定を記述していては、後でソースを見直したときに分かりづらくなる。
今回、そんな環境設定を安全に管理しておくためのJavascriptを考えてみた。
env.js
/** * 環境設定<br /> */ var Env = function() { }; /** * 環境設定を初期化する<br /> */ Env.init = function(envType) { // カプセル化し、他からアクセス不可能にする。 var _env = null, ENV_TYPE_DEVELOPMENT = '0', ENV_TYPE_STAGING = '1', ENV_TYPE_PRODUCT = '2'; // 環境ごとの環境設定 var _settings = { local: { contextPath: '/', ajaxTimeout: 60000, debug: true }, development: { contextPath: '/dev', ajaxTimeout: 60000, debug: true }, staging: { contextPath: '/staging', ajaxTimeout: 60000, debug: false }, product: { contextPath: '/product', ajaxTimeout: 20000, debug: false } } // 環境ごとに読み込む設定を変更する。 if(envType == ENV_TYPE_DEVELOPMENT) { _env = _settings.development; } else if(envType == ENV_TYPE_STAGING) { _env = _settings.staging; } else if(envType == ENV_TYPE_PRODUCT) { _env = _settings.product; } else { _env = _settings.local; } // 各変数のアクセッサー。 this.getContextPath = function() { return _env.contextPath; }; this.getAjaxTimeout = function() { return _env.ajaxTimeout; }; this.isDebug = function() { return _env.debug; }; };
環境設定の呼び出し方法は下記。
<html> <head> <script type="text/javascript" src="./env.js"></script> <script type="text/javascript"> // 開発環境用の設定を行う。 Env.init('0'); // 環境設定変数の取り出し。 alert(Env.getContextPath()); </script> </head> <body> ... </body> </html>
こうする事で、環境依存の変数を一元管理し、後は、envType等はJSPで変数を取得すればよい。