有人使用javascript的配置文件吗?

有人使用javascript的配置文件吗?,javascript,xml,configuration,Javascript,Xml,Configuration,我们有特定于环境的javascript文件,所以我想创建一种通用方法来读取XML(配置)文件以存储不同的特定于环境的设置。我很想知道这里是否有其他人这样做(或者如果没有,你为什么不这样做)?你可以使用jquery( 然而,我想提出,特定于环境的客户端javascript代码是否真的是一个好主意应该在服务器上处理,并且客户端应该与环境无关JSON的使用速度比XML快数百倍,自带一个本机JavaScript对象。附加并忘记 编辑: James Westgate的例子是JSON。您可以使用此内联文件或

我们有特定于环境的javascript文件,所以我想创建一种通用方法来读取XML(配置)文件以存储不同的特定于环境的设置。我很想知道这里是否有其他人这样做(或者如果没有,你为什么不这样做)?

你可以使用jquery(


然而,我想提出,特定于环境的客户端javascript代码是否真的是一个好主意应该在服务器上处理,并且客户端应该与环境无关

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();

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


你可以考虑的是让页面本身包含一些小的JavaScript块来提供这种配置信息。通常,你只需要少量的URL构建信息。我会给出一个JSP例子:

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

var appConfig={
“辛迪加”:“${environment.sin迪加}”,
“urlBase”:“${environ.urlBase}”
};
然后,您的“纯”Javascript代码可以查看
window.appConfig
以获取关键信息。显然,如果您需要大量的东西,这会变得一团糟

当您的页面是通过服务器端环境中的某个模板系统构建的时,这尤其容易。这样,您只需在一个位置(或少数位置;换句话说,模板)设置脚本标记,所有页面都会自动获得它


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

我建议使用YCB。下面是一个如何使用它的示例:

XML Blecch!您已经有了JSON!它当前用于特定于环境的AJAX调用。URL将根据环境的不同而不同,因为我们的不同web应用程序根据环境有不同的URL。我想,有了这个小小的差异,pa我要说的可能有些过火,但这是我想探讨的。在变量前面加上函数或其他变量以赋予它更多的含义/上下文,例如config.option1,而不仅仅是option1。实际上,我的示例不是有效的JSON,你的也不是。在我的示例中,它不打算通过ajax加载-直接作为scri加载pt文件效率更高。如果通过ajax从API调用中检索它,则这将是另一回事。为了避免使用长名称,我建议在可能需要许多这些变量的函数中使用类似
var data=clientData.dataset1
的内容。虽然此链接可以回答问题,但最好在此处包含答案的重要部分,并提供链接供参考。如果链接页面发生更改,则仅链接的答案可能无效。