httpclient запрос поздно, чтобы загрузить с угловой 5 - PullRequest
0 голосов
/ 14 мая 2018

У меня есть приложение с angular 5, которое работает нормально, за исключением загрузки данных из rest api (используя httpclient).Когда я загружаю приложение, загрузка модулей занимает около 3 секунд.Я кодировал, чтобы получать данные из API остальных в инициализаторе, как показано ниже в сервисе

load(): Promise<any> {
         this._appLoadData = null;
         return this.http
            .get<Response>(this.apiUrl+'appload-new')
            .map((res: Response) => res)
            .toPromise()
            .then((data: any) => this._appLoadData = data.response.data)
            .catch((err: any) => Promise.resolve());
   }

, и вызвал эту функцию load () в файле app.module

export function initilizerServiceFactory(initilizerService: InitilizerService): Function {
  return () => initilizerService.load();
}

Как я используюhttpclient (angular 5) сначала отправляет запрос OPTIONS, который срабатывает через 10 секунд загрузки приложения, а затем имеет время ожидания 300 мс, что приводит к общей задержке для получения выходных API.поскольку структура моего приложения зависит от этих данных API, для отображения HTML-кода на странице требуется около 20 секунд.

Я проверяю другие решения, но не получил точное решение проблемы

Ответы [ 2 ]

0 голосов
/ 14 мая 2018

Вы можете использовать App Shell (предварительно определенную точку входа) или полный Angular Universal SSR и / или Service Worker, чтобы быстрее получить первую значимую краску.

Поиск App Shell и Angular SW, все довольно легко настроить с помощью NG CLI.

0 голосов
/ 14 мая 2018

Вы можете отправлять запросы API на тот же сервер, на котором размещено угловое приложение, а затем перенаправлять прокси все запросы /api на ваш сервер API. Таким образом, вы можете избежать запроса options.

...