我使用EJS
和Express.JS
创建了一个复杂的页面。我会简化一下:
第一个应用程序以简单的方式加载/update
并呈现它:
app.get('/update', (req, res) => {
res.render('update');
});

update
函数中的 render
是EJS
模板。这是它的样子:
...
<div id="progress"></div>
<button id="perform" type="button" class="btn btn-default">Download & Update</button>
<script>
$('#perform').click(function() {
$('#perform').hide();
$('#progress').load('/perform');
});
</script>
...
&#13;
正如您在点击按钮时看到的那样,应用程序会将/perform
express.js
路由加载到特定的div
。这是Node.JS
方面的作用:
app.get('/perform', function(req, res) {
//Renders div
res.render('perform')
//Does some actions in 1-2 minues.
//Here I want it to redirect to / of application.
});
&#13;
使用res.render()
返回一些内容后,应用程序开始执行某些过程。他们需要大约1分钟,完成后我希望应用程序重定向到/
。我尝试使用res.redirect('/')
e.t.c.但没有任何作用。也许它会以某种方式告诉浏览器重定向..
我可以在这做什么?
答案 0 :(得分:1)
你通过ajax加载“/ perform”,所以你只能发送一个响应(你使用res.render('perform'))
所以你应该重定向客户端
您可以通过轮询,超时甚至更好的方式执行此操作,您可以使用socket.io在操作完成后从服务器向客户端发出信号。