Как вызвать функцию JS в HTML с несколькими context.res из REST API - PullRequest
0 голосов
/ 10 сентября 2018

Я использую следующий код на веб-странице 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 (httptrigger в функциях Azure) я использую:

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

для определения данных для отправкиназад из API.Это означает, что когда я заканчиваю функцию Azure - данные, отправленные в body in context.res, отправляются на мою веб-страницу и отображаются.

Это работает нормально и в соответствии с планом.Тем не менее, я ищу возможность отправлять данные обратно в две части.

(я пытался определить context.res дважды, но это не сработало, так как второе определение отвергло первое)

Есть ли эффективный способ сделать это?

По сути, пользователь нажимает мой API, и я хочу отправить частичную информацию на веб-страницу из API на полпути через функцию, а затем еще больше данных наконец.Это сделано для того, чтобы пользовательский опыт на веб-странице был быстрее, чем ожидание загрузки всех данных / завершения работы.

1 Ответ

0 голосов
/ 20 марта 2019

То, что вы пытаетесь сделать, - это то, что невозможно сделать только с помощью лазурных функций.

Похоже, вы хотите разделить полезную нагрузку без разделения логики, и это не будет работать для протокола HTTP.

Этот протокол означает 1 запрос и 1 ответ. Это означает, что вам нужно выбрать другой протокол, чтобы это произошло.

У вас может быть возможность использовать сокеты, использовать потоковые данные или другие методы, но вы не можете добавлять данные к HTTP-запросу, как только он запущен.

А функции Azure являются реализацией поверх HTTP, поэтому context.res переопределяется, потому что вы можете ответить только на одну вещь.

Что вы можете сделать, это сделать несколько звонков вместо очень длинного и большого. И попробуйте отделить «быструю» логику от «медленной», чтобы вы могли быстрее загружать элементы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...