当前位置: 首页 > 面试题库 >

在一个getJson请求中调用多个JSON数据/文件

乐正玺
2023-03-14
问题内容

我有以下代码:

var graphicDataUrl = 'graphic-data.json';
var webDataUrl = 'web-data.json';
var templateHtml = 'templating.html';
var viewG = $('#view-graphic');
var viewW = $('#view-web');

$.getJSON(dataUrls, function(data) {
    $.get(templateHtml, function(template) {
        template = Handlebars.compile(template);
        var example = template({ works: data });        
        viewG.html(example);
        viewW.html(example);
    }); 
});

调用webDataUrl和graphicDataUrl
JSON并使用它们的数据以便在两个不同的div(#viewG和#viewW)中显示它们的最佳方法是什么?


问题答案:

最好的方法是单独执行每个操作,并处理错误情况:

$.getJSON(graphicDataUrl)
    .then(function(data) {
        // ...worked, put it in #view-graphic
    })
    .fail(function() {
        // ...didn't work, handle it
    });
$.getJSON(webDataUrl, function(data) {
    .then(function(data) {
        // ...worked, put it in #view-web
    })
    .fail(function() {
        // ...didn't work, handle it
    });

这样就可以并行执行请求,并在每个请求完成后尽快更新页面。

如果您想并行运行请求,但是 等到 两个 页面 完成 后再等待
更新页面,可以使用以下方法$.when

var graphicData, webData;
$.when(
    $.getJSON(graphicDataUrl, function(data) {
        graphicData = data;
    }),
    $.getJSON(webDataUrl, function(data) {
        webData = data;
    })
).then(function() {
    if (graphicData) {
        // Worked, put graphicData in #view-graphic
    }
    else {
        // Request for graphic data didn't work, handle it
    }
    if (webData) {
        // Worked, put webData in #view-web
    }
    else {
        // Request for web data didn't work, handle it
    }
});

…但是该页面的响应速度似乎较慢,因为您不会在第一个请求返回时更新,而只有在两者都更新时才更新。



 类似资料:
  • 问题内容: 如何在一个HTTP请求中下载多个文件?我的意思是,当您有多个附件时,选择要下载的内容,然后按下载,这样便可以自动下载它们,而不必手动单击每个附件。 我正在使用PHP作为服务器端加密。 问题答案: 它 是 可以发送一个在HTTP响应多: 通常,HTTP与任何其他媒体类型一样对待多部分消息主体:严格作为有效负载。[…] HTTP用户代理应遵循与MIME用户代理在收到多部分类型时相同或相似的

  • 问题内容: 我有一个循环,可以调用API并将结果编译成数组。我如何等待所有调用完成后才能恢复执行?我看到了一系列有关如何等到打完一个电话的答案,但我不知道如何检查所有这些。如果我做一个while循环,一直等到’obj’是正确的长度,则页面只会停顿直到调用完成,这不是我想要的。请帮助? 问题答案: 如果您使用jQuery的deferred,这很容易。有一种方法,等待多个诺言完成,然后运行回调。那就是

  • 问题内容: 我需要进行API调用,以上传文件以及带有有关文件详细信息的JSON字符串。 我正在尝试使用python请求库来执行此操作: 这将引发以下错误: 如果我从请求中删除“文件”,则它可以工作。 如果我从请求中删除了“数据”,它将起作用。 如果我不将数据编码为JSON,则可以使用。 因此,我认为错误与在同一请求中发送JSON数据和文件有关。 关于如何使它工作的任何想法? 问题答案: 不要使用j

  • 问题内容: 我一直试图找出如何从Angularjs前端的一个HTTP请求表单中解析PDF文档和JSON数据。请求有效负载为 HTTP请求 内容处置:表单数据;name =“文件”; filename =“ Parent Handbook.pdf”内容类型:application / pdf 内容处置:表单数据;name =“ doc” {“ title”:“ test”,“ cat”:“ test

  • 在文档中有deleteMany()方法 我想删除具有一个公共属性而另一个属性不同的多个文档。大概是这样的: {} 这个的正确语法是什么?

  • 我知道如何创建使用MediaType处理文件的endpoint。MULTIPART\u FORM\u DATA和FormDataParam(“file”)FormDataBodyPart bodyPart,但我想知道是否也可以在该请求中包含JSON数据?类似于: 目前,如果我在以下邮递员请求的“原始”选项卡上添加一些JSON数据,我会得到HTTP 415不支持的媒体类型,这可能是因为我指定我使用多