如何在 res.redirect() 之前等待
How to wait before res.redirect()
我的 HTML 文件中有一个按钮,当单击它并提交表单时,它会调用 post 路由。单击按钮还会调用我的另一个 javascript 文件中的一个函数,该函数会激活一个 'sweetalert' 警报框。
但是,我现在遇到的问题是,在 post 请求执行 res.redirect("/")
.
之前,用户没有足够的时间阅读警报
我希望得到以下任何一种解决方案:
1) 在页面重定向后调用警报(我在某处读到您无法使用 node.js 控制下一页,所以这可能是不可能的)。
2) 在调用 res.redirect("/")
之前等待几秒钟。
3) 任何其他合适的解决方案。
HTML 包含按钮的文件:
<button formaction="/removetask" type="submit" id="top" class="btn btn-primary btn-block" onclick="success()"> Complete </button>
客户端javascript文件:
function success(){
...
swal("Congratulations!", "Goal successfully completed", "success")
}
node.js 文件:
app.post("/removetask", async function(req, res) {
...
res.redirect("/");
});
link 到 'sweetalert' 在 HTML:
<script src="https://unpkg.com/sweetalert/dist/sweetalert.min.js"></script>
编辑:
我注意到使用常规 HTML alert()
会停止一切并阻止重定向,直到用户关闭警报。是否可以将“sweetalert”警报更改为这样的行为?
您可以尝试其他方式显示告警。
首先,您不需要重定向到原始页面。
app.post("/removetask", async function(req, res) {
...
res.render('alarm page')
});
并且在报警页面,javascript文件会设置等待片刻的时间
alarmpagejs.js关注
setTimeout(() => {
window.location = "/";
}, 5000)
那么结果就是这样的逻辑:
- 按钮点击
- 渲染报警页面
- 通过警报重定向到“/”page.js
您可以等待任意毫秒数
我稍微修改了你的代码。
现在点击表单不是提交。
在您点击成功按钮后,表单将被提交。
HTML:
<button type="button" id="top" class="btn btn-primary btn-block" onclick="success()"> Complete </button>
JS:
function success(){
swal({
title: "Congratulations!",
text: "Goal successfully completed",
type: "success",
}).then(function(){
document.getElementById('form').submit();
});
}
我的 HTML 文件中有一个按钮,当单击它并提交表单时,它会调用 post 路由。单击按钮还会调用我的另一个 javascript 文件中的一个函数,该函数会激活一个 'sweetalert' 警报框。
但是,我现在遇到的问题是,在 post 请求执行 res.redirect("/")
.
我希望得到以下任何一种解决方案:
1) 在页面重定向后调用警报(我在某处读到您无法使用 node.js 控制下一页,所以这可能是不可能的)。
2) 在调用 res.redirect("/")
之前等待几秒钟。
3) 任何其他合适的解决方案。
HTML 包含按钮的文件:
<button formaction="/removetask" type="submit" id="top" class="btn btn-primary btn-block" onclick="success()"> Complete </button>
客户端javascript文件:
function success(){
...
swal("Congratulations!", "Goal successfully completed", "success")
}
node.js 文件:
app.post("/removetask", async function(req, res) {
...
res.redirect("/");
});
link 到 'sweetalert' 在 HTML:
<script src="https://unpkg.com/sweetalert/dist/sweetalert.min.js"></script>
编辑:
我注意到使用常规 HTML alert()
会停止一切并阻止重定向,直到用户关闭警报。是否可以将“sweetalert”警报更改为这样的行为?
您可以尝试其他方式显示告警。
首先,您不需要重定向到原始页面。
app.post("/removetask", async function(req, res) {
...
res.render('alarm page')
});
并且在报警页面,javascript文件会设置等待片刻的时间
alarmpagejs.js关注
setTimeout(() => {
window.location = "/";
}, 5000)
那么结果就是这样的逻辑:
- 按钮点击
- 渲染报警页面
- 通过警报重定向到“/”page.js
您可以等待任意毫秒数
我稍微修改了你的代码。 现在点击表单不是提交。
在您点击成功按钮后,表单将被提交。
HTML:
<button type="button" id="top" class="btn btn-primary btn-block" onclick="success()"> Complete </button>
JS:
function success(){
swal({
title: "Congratulations!",
text: "Goal successfully completed",
type: "success",
}).then(function(){
document.getElementById('form').submit();
});
}