如何使用REST API中的多个context.res在HTML中触发JS函数

问题描述 投票:0回答:1

我在HTML网页中使用以下代码:

    var request = new XMLHttpRequest();
    var url= "my azure httptrigger";
    request.open('GET', url, true);
    request.onload = function () {

      // Begin accessing JSON data here
      var data = this.response;

      if (request.status >= 200 && request.status < 400) {
        document.getElementById('results').innerHTML  = data;
    function2();
      } else {
        console.log('error');
      }
    }
    request.send();

在我的API(Azure函数中的httptrigger)中,我使用:

context.res = {
    body: bodyStuff,
    headers: {
        'Content-Type': 'text/html; charset=utf-8'
    }
}

确定要从API发回的数据。这意味着当我结束Azure功能时 - 在bodycontext.res发送的数据将被发送到我的网页并显示。

这很好,按计划工作。但是,我正在寻找的是能够将数据分成两部分。

(我试图定义context.res两次,但这不起作用,因为第二个定义覆盖了第一个)

有没有有效的方法来做到这一点?

本质上,用户点击我的API,我希望通过函数中途从API发送部分数据到网页,然后在结尾处发送更多数据。这是为了使网页上的用户体验比等待所有数据加载/功能完成更快。

node.js rest api web azure-functions
1个回答
0
投票

你想要做的是用azure函数做不到的事情。

看起来你想要在不划分逻辑的情况下划分有效负载,这对HTTP协议不起作用。

该协议意味着1个请求,1个答案。这意味着您需要选择不同的协议才能实现此目的。

您可以选择使用套接字,使用可流式传输数据或其他方法,但是一旦触发了HTTP请求,就无法将数据附加到HTTP请求中。

而azure函数是在HTTP之上的实现,这就是为什么context.res被覆盖,因为你只能回答一件事。

你能做的就是拨打几个电话,而不是长电话。并尝试将“快速”逻辑与“慢”逻辑分开,以便您可以更快地加载元素。

© www.soinside.com 2019 - 2024. All rights reserved.