首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >部署的Heroku应用程序只有在刷新后才能工作(Node.js、Express.js、Jquery、Css、Html、TMDB API)

部署的Heroku应用程序只有在刷新后才能工作(Node.js、Express.js、Jquery、Css、Html、TMDB API)
EN

Stack Overflow用户
提问于 2020-05-07 21:47:15
回答 1查看 189关注 0票数 0

各位,

我有一个应用程序,允许您搜索电影和电视节目使用电影数据库API。在刷新页面后,该应用程序在Heroku上完全可用。有可能会有一种方法来加快应用程序的速度,并允许它在不进行初始刷新的情况下工作。

Heroku应用程序 https://the-cinematic-app.herokuapp.com/

Github存储库 https://github.com/kimanikelly/Cinematic

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-05-07 22:22:12

问题在$.post('/token'... in logic.js中。这里的问题在于ajax是异步的,这意味着继续执行JS代码。

这就是为什么apiKey = sessionStorage.getItem('token');在第一次访问页面时没有时间获得价值,因为ajax没有完成他的工作。

我认为在$.post和$.ajax中使用异步假是不可取的,因为应用程序逻辑的很大一部分依赖于这个apiKey,所以我会将使用apiKey的每个.click都放在$.post...中。

解决方案2

我不想给您写异步/等待的概念,也不想混淆您,但是您可以这样做

1)添加异步->告诉您的函数是异步的,您需要它,所以您可以等待ajax的响应承诺。

代码语言:javascript
运行
复制
$(document).ready(async () => {

2)等待ajax完成

代码语言:javascript
运行
复制
var token = await $.post('/token').then();

然后可以在sessionStorage中设置或设置变量并使用它。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61668288

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档