【问题标题】:How to use JSON as config file with Javascript如何使用 JSON 作为 Javascript 的配置文件
【发布时间】:2015-05-04 13:26:07
【问题描述】:

我正在寻找一种可以将 JSON 用作配置文件的方法,

我的 JSON 配置文件如下所示:

{
'Lang' : 'EN',
'URL' : '/over/dose/app'
}

我想使用 javascript 或 jQuery 获取 html 文件中的 URL 和 Lang。 我不想使用像$.getJson 这样的异步方法。

我想从 JSON 文件中获取 URL 和语言,例如:

var url = myjson.URL;

所以我以后可以在许多不同的函数中使用 var。

【问题讨论】:

  • 首先你必须有 JSON。您发布的不是 JSON。
  • 浏览器还是服务器?
  • 在服务器中 JSON 在同一个域中
  • 供将来参考,虽然目前是一个提案,但您很可能能够在不放弃非阻塞行为的情况下 await 异步操作。

标签: javascript jquery json


【解决方案1】:

如果您不想使用异步调用,您可以随时为配置对象分配一个变量并将文件放在脚本标签的src 中

var appConfig={
    'Lang' : 'EN',
    'URL' : '/over/dose/app'
}

.

<script src="/path/to/config.js"></script>
<script> alert(appConfig.URL);</script>

优点是立即加载。可能的缺点是它不再是 json 文件,而是常规的 javascript 文件,以防您从服务器代码写入。

当然这也会创建一个全局变量。

【讨论】:

    【解决方案2】:

    类似

    var cfg = {};
    $.ajax({
      url: myUrl,
      async: false,
      success: function(data) {
        cfg = JSON.parse(data);
      }
    });
    

    【讨论】:

    • 不要使用async: false。这是一种糟糕的做法,并且已经被浏览器供应商和 jQuery 弃用
    • 请注意,async: false 在 1.8+ 中已弃用,并且可能会在未来的版本中被删除。
    • 有趣。让它同步的新东西?
    • @Mephiztopheles 不,但多年来一直不鼓励使用它,因为它会阻塞 UI
    • @Mephiztopheles 否。同步请求通常被认为不利于用户体验,因为它们会在请求处理时锁定页面。原生 XMLHttpRequest 现在仅在指定 timeout 时才支持它们。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-12
    • 1970-01-01
    • 2017-07-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多