Javascript 以异步方式将设置文件添加到前端web应用程序

Javascript 以异步方式将设置文件添加到前端web应用程序,javascript,jquery,html,single-page-application,Javascript,Jquery,Html,Single Page Application,我目前正试图解决一些问题,一个SPA正在建造中,有很多定制组件,从各地借用了很多东西 我目前面临的挑战是使用设置文件初始化一些设置(端点URL和排序),这些设置文件将根据每个部署进行设置。它是Javascript,因此将其降级为JSON文件是有意义的。然而,很多逻辑仍然是用这种定义严格的OO方法编写的,我正在尝试确定在异步方法中加载此设置文件的最佳方法 查看有关堆栈溢出的其他主题,jQuery getJSON方法是一个可行的选项。但我不清楚它是否仍然基于同步调用。此外,如果有一个异步选项,我希望

我目前正试图解决一些问题,一个SPA正在建造中,有很多定制组件,从各地借用了很多东西

我目前面临的挑战是使用设置文件初始化一些设置(端点URL和排序),这些设置文件将根据每个部署进行设置。它是Javascript,因此将其降级为JSON文件是有意义的。然而,很多逻辑仍然是用这种定义严格的OO方法编写的,我正在尝试确定在异步方法中加载此设置文件的最佳方法

查看有关堆栈溢出的其他主题,jQuery getJSON方法是一个可行的选项。但我不清楚它是否仍然基于同步调用。此外,如果有一个异步选项,我希望确保在应用程序中触发任何附加逻辑之前加载该值(而不是让它在构造函数中不初始化任何内容)

我的假设正确吗?getJSON是这里最好的方法吗?代码如下所示

var settings = $.getJSON("conf.json");
var SearchObject = new Search(settings);
// Remainder is just a bunch of bind() and on() calls

$.getJSON只是一个更详细的$.ajax调用的快捷方式,您可以在其中调整更多的参数,如回调(callback),如果需要的话。不,$.getJSON与$.ajax相同

执行异步HTTP(Ajax)请求


默认情况下,getJSON jquery函数是异步的

$.getJSON({
  url: url,
  data: data,
  success: function(data, textStatus, jqXHR ){}
});
这与:

$.ajax({
  dataType: "json",
  url: url,
  data: data,
  success: function(data, textStatus, jqXHR ){}
});
但是,如果需要,可以使用ajax函数将async设置为false。
例如


从jQuery 1.10.x开始,我就听到过关于这一点的相互矛盾的陈述,其中不推荐使用async:false。@Cameronkigore,检查API页面-“async:…从jQuery 1.8开始,不推荐使用async:false和jqXHR($.Deferred)
$.ajax({
  dataType: "json",
  async: false,
  url: url,
  data: data,
  success: function(data, textStatus, jqXHR ){}
});