我试图以这样的方式在页面上实现Flash消息,它们就像用户在该页面上提交的内容的状态更新一样。详细地说,该页面上有一个表单,一旦用户按下提交,它就会被发布到处理处理的路由,但这需要一些时间。 在此处理期间,我想在同一页面上提供状态更新,理想情况下无需一直重新加载页面。
作为一个极端的例子,这样的事情怎么可能起作用:
app.get('/index', function(req,res) {
for (var i = 0; i < 100; i++) {
//send a flash every 2 seconds
setTimeout(function(i) {
req.flash('This is ' + i);
}, 2 * 1000 * i, i);
};
res.render('../views/index.ejs');
})
这可能吗?我看了一下&#39; express-flash-notification&#39;,我不确定它是否可以做到这一点。
答案 0 :(得分:1)
通常,当您模拟新页面时,Flash通知会添加一些额外信息。如果您不想重新加载页面,express-flash-notification
等库将没有多大用处。
此场景的常见方法是使用JavaScript在浏览器中进行HTTP调用,并使用返回的信息动态更新DOM。你可以选择使用像AJAX这样的东西(在jQuery中找到)。
总体流程就是这样,但你可以根据自己的特定需求进行定制。
res.json({})
)的形式返回。然后前端JS会根据需要显示它。你可以选择使用类似网络套接字的东西进行状态更新,但如果这是你第一次接近前端AJAX调用,那么我建议现在轮询(每隔几秒发一次请求)。