有没有人使用配置文件的JavaScript?

时间:2010-05-05 18:35:14

标签: javascript xml configuration

我们有特定于环境的javascript文件,因此我考虑沿着创建通用方式读取XML(配置)文件以存储不同环境特定设置的路径。我很想知道这里有没有人这样做(或者如果没有,是否有理由不这样做?)

6 个答案:

答案 0 :(得分:30)

您需要做的就是加载一个带有一些变量定义的javascript文件,理想情况下是命名空间。您可以使用单个对象文字:

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

然后将该文件作为第一个脚本加载,您将可以访问每个后续脚本中的配置信息,例如

if (config.option1 == 'good') doStuff();

答案 1 :(得分:25)

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)

答案 2 :(得分:8)

为什么不使用单独的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>

答案 3 :(得分:5)

您可能会考虑的一件事是让页面本身包含很少的Javascript块来提供这种配置信息。通常,您只需要少量的信息来构建URL等。我将给出一个JSP示例:

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

然后,您的“纯”Javascript代码可以查看window.appConfig以获取重要信息。显然,如果你需要很多东西,这将变得一团糟。

当您的页面通过服务器端环境中的某个模板系统构建时,这一点尤为简单。这样,您只需将脚本标记设置在一个地方(或少数地方;换句话说,模板),所有页面都会自动获取。

编辑以消除奇怪的变量声明

答案 4 :(得分:0)

您可以使用jquery(http://think2loud.com/reading-xml-with-jquery/)

之类的内容轻松下载XML文件

但是,我想说明环境特定的客户端javascript代码是否真的是一个好主意。似乎应该在服务器上处理任何特定环境(即qa,uat,我假设的生产),客户端应该与环境无关

答案 5 :(得分:0)

我建议使用YCB。以下是如何使用它的示例:https://github.com/yahoo/ycb/blob/master/examples/simple/app.js