作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想在收到数据时即时渲染,而不是等待一切都完成后再渲染数据。
app.post('/', (req, response) => {
var users = [{
'username': 'test@gmail.com',
'password': 'test'
}]
users.map((user, index) => {
obj.login(index)
.then(res => {
obj.getBalance(index).then(scratchCards => {
// Render when balancé recieved
});
obj.getScratchCards(index).then(scratchCards => {
// Render when cards recieved
});
});
我该怎么做?
最佳答案
在您的情况下,这是不可能的。你不能做 response.render 因为那会退出整个路线。一个http路由只能返回一个http响应,这意味着你不能在一个路由中返回两个不同的响应(/
)。
我的建议是改变你的路线架构。创建一个 /
路由,它将登录用户。然后,在客户端,在路由 /getBalance
、/getScratchCards
上运行 AJAX 请求(使用 axios 或不同的 HTTP 客户端),并相应地呈现页面。
另一种更原始的解决方案是长池化,这意味着客户端将向服务器发送请求,询问是否有任何新内容要呈现。当服务器有东西时,它会返回它。然后客户端会再次长池。
另一种可能性是创建 websockets,服务器将在其中与客户端通信。
关于javascript - 如何在接收数据时渲染(在一个路由挂载中渲染不止一次),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51951738/
我是一名优秀的程序员,十分优秀!