Развернутое приложение Heroku работает только после обновления (Node.js, Express. js, Jquery, Css, Html, TMDB API) - PullRequest
0 голосов
/ 08 мая 2020

все,

У меня есть приложение, которое позволяет вам искать фильмы и телешоу с помощью API базы данных Mov ie. После обновления страницы приложение станет полностью функциональным на Heroku. Возможно, есть способ ускорить работу приложения и позволить ему работать без первоначального обновления sh.

Приложение Heroku https://the-cinematic-app.herokuapp.com/

Репозиторий Github https://github.com/kimanikelly/Cinematic

1 Ответ

1 голос
/ 08 мая 2020

Проблема в вашем $.post('/token'... в логах c. js. Проблема здесь в том, что ajax является асинхронным c, а это означает, что код JS продолжает выполняться.

Вот почему apiKey = sessionStorage.getItem('token'); не успеет получить значение при первом переходе на страницу, потому что ваш ajax не завершил sh свою работу.

Я думаю, что использование asyn c false в $ .post и $. ajax устарело, и потому что большая часть вашего приложения logi c зависит от этого apiKey, я бы поместил в ваш $.post... каждый .click, который использует apiKey.

Решение 2

Я не хотел писать вам концепцию async / await и запутать вас, но вы можете сделать что-то вроде этого

1) add asyn c -> сообщает, что ваша функция является asyn c, и вам это нужно, чтобы вы могли ждать обещания с ответом from ajax

$(document).ready(async () => {

2) await for ajax to fini sh

var token = await $.post('/token').then();

Затем вы можете установить в sessionStorage или установить его переменную и использовать.

...