Jus*_*son 42 javascript xml configuration
我们有特定于环境的javascript文件,因此我想要创建一种通用的方式来读取XML(配置)文件来存储不同的环境特定设置.我很想知道这里是否有其他人这样做(或者如果没有,是否有理由不这样做)?
Jam*_*ate 29
您需要做的就是加载一个带有一些变量定义的javascript文件,理想情况下是命名空间.您可以使用单个对象文字:
var config = {
option1: 'good;',
option2: {name: 'bad'},
option3: ['u','g','l','y']
}
Run Code Online (Sandbox Code Playgroud)
然后将该文件作为第一个脚本加载,您将可以访问每个后续脚本中的配置信息,例如
if (config.option1 == 'good') doStuff();
Run Code Online (Sandbox Code Playgroud)
Dio*_*ane 26
使用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)
Run Code Online (Sandbox Code Playgroud)
为什么不使用单独的js文件来存储特定于环境的设置?
就像您可以使用多个CSS文件来设置页面样式一样,您也可以使用多个js文件.
因此,您可以使用特定设置创建名为app-config.js的文件:
var SiteName = "MyWebsite.com";
var HeaderImage = "http://mycdn.com/images/mywebsite/header.png";
Run Code Online (Sandbox Code Playgroud)
然后你在你的页面上包含js,如下所示:
<script type="text/javascript" src="/js/app-config.js"></script>
<script type="text/javascript" src="/js/app.js"></script>
Run Code Online (Sandbox Code Playgroud)
您可能会考虑的一件事是让页面本身包含很少的Javascript块来提供这种配置信息.通常,您只需要少量的信息来构建URL等.我将给出一个JSP示例:
<script>
var appConfig = {
'syndicate': '${environ.syndicate}',
'urlBase': '${environ.urlBase}'
};
</script>
Run Code Online (Sandbox Code Playgroud)
然后,您的"纯"Javascript代码可以查找window.appConfig
获取关键信息.显然,如果你需要很多东西,这将变得一团糟.
当您的页面通过服务器端环境中的某个模板系统构建时,这一点尤为简单.这样,您只需将脚本标记设置在一个地方(或少数地方;换句话说,模板),所有页面都会自动获取.
(编辑以消除奇怪的变量声明)
归档时间: |
|
查看次数: |
58786 次 |
最近记录: |