web-dev-qa-db-ja.com

誰もがjavascriptの設定ファイルを使用していますか?

環境固有のjavascriptファイルがあるため、XML(config)ファイルを読み込んでさまざまな環境固有の設定を保存する一般的な方法を作成することを考えていました。ここの他の誰かがそれをしているのかどうか知りたいのですが(もしそうでないなら、そうしない理由はありますか)?

42

JSONはXMLよりも数百倍高速であり、ネイティブJavaScriptオブジェクト自体をもたらします。接続して忘れてください。

編集:

James Westgateの例はJSONです。このインラインを使用することも、外部ファイルとして使用することも、AJAX経由でロードすることもできます。

別の例を次に示します。

var clientData = {}
clientData.dataset1 = [
    {name:'Dave', age:'41', userid:2345},
    {name:'Vera', age:'32', userid:9856}
]

alert(clientData.dataset1[0].name)

あなたがする必要があるのは、理想的には名前空間化された、いくつかの変数定義とともにjavascriptファイルをロードすることです。これには、単一のオブジェクトリテラルを使用できます。

var config = {
  option1: 'good;', 
  option2: {name: 'bad'}, 
  option3: ['u','g','l','y']
}

次に、そのファイルを最初のスクリプトとしてロードすると、後続の各スクリプトの構成情報にアクセスできます。

if (config.option1 == 'good') doStuff();
29
James Westgate

個別のjsファイルを使用して、環境固有の設定を保存してみませんか?

複数のCSSファイルを使用してページのスタイルを設定できるように、複数のjsファイルも使用できます。

したがって、特定の設定でapp-config.jsというファイルを作成できます。

var SiteName = "MyWebsite.com";
var HeaderImage = "http://mycdn.com/images/mywebsite/header.png";

そして、次のようにページにjsを含めます。

<script type="text/javascript" src="/js/app-config.js"></script>
<script type="text/javascript" src="/js/app.js"></script>
9
Steve Wortham

考慮すべきことの1つは、ページ自体に小さなJavaScriptブロックを含めて、この種の構成情報を提供することです。多くの場合、URLの構築などに必要な情報はごくわずかです。JSPの例を示します。

<script>
  var appConfig = {
    'syndicate': '${environ.syndicate}',
    'urlBase': '${environ.urlBase}'
  };
</script>

次に、「純粋な」Javascriptコードはwindow.appConfig重要な情報を取得します。大量のものが必要な場合、これは明らかに混乱になります。

これは、サーバー側環境のテンプレートシステムを介してページを構築する場合に特に簡単です。そうすれば、スクリプトタグを1か所(または少数の場所、言い換えればテンプレート)に設定するだけで、すべてのページが自動的に取得します。

奇妙な変数宣言を排除するために編集

5
Pointy

Jquery( http://think2loud.com/reading-xml-with-jquery/) のようなものを使用して、XMLファイルを簡単にプルダウンできます。

ただし、環境固有のクライアント側javascriptコードが本当に良いアイデアであるかどうかを提示したいと思います。特定の環境(qa、uat、productionなど)をサーバー上で処理し、クライアントは環境に依存しないようにします。

0
Joel Martinez

YCBの使用をお勧めします。使用方法の例を次に示します。 https://github.com/yahoo/ycb/blob/master/examples/simple/app.js

0
Tufan