javascript - 如果当前页面需要 x 秒加载,重定向到另一个页面?

标签 javascript php

只是好奇这是否可能。我正在使用一个 API,一个函数有时可能需要很长时间才能完成,甚至会超时,这取决于它的感觉。有没有一种方法(使用 PHP、Javascript 等)能够在 X 秒后停止页面加载并重定向到另一个页面?

具体来说,我使用的是使用标准表单发布机制发布到 API 的表单。

最佳答案

根据延迟缓慢页面响应的原因,浏览器可能在表单提交后的一段时间内不会拆除之前的页面。这意味着您有机会使用 setTimeout 进行重定向。

document.querySelector("selector-for-the-form").addEventListener("submit", function() {
    setTimeout(function() {
        location.href = "/path/to/redirect/to";
    }, 3000); // 3000 = three seconds
}, false);

在我的默认设置中发布到这个简单的 PHP 页面时,这对我在 Chrome、Firefox 和 IE 上有效,它会进行五秒钟的忙等待:

<!doctype html>
<html>
<head>
<meta charset="UTF-8">
<title>Delayed</title>
<style>
body {
    font-family: sans-serif;
}
</style>
</head>
<body>
<?php
$end = time() + 5;
while (time() < $end) {
    // wait
}
?>
<p>Done: <?php echo $_POST["foo"]?></p>
</body>
</html>

不过,这又取决于 API 页面是否需要几秒钟才能开始向浏览器发送数据。例如,如果它没有缓存,并立即开始发送响应,但需要很长时间才能完成发送响应,浏览器可能会拆除页面并开始构建新页面。

关于javascript - 如果当前页面需要 x 秒加载,重定向到另一个页面?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40356814/

相关文章:

JSON 对象中的 Javascript 表

php - 如何在 Laravel 5.5 中禁用 filp/whoops 包而不删除它?

php - mysql 检查房间可用性查询中的下一个和上一个可用时段

php - 具有 Elastic Beanstalk 的 Amazon SQS 服务

javascript - 如何使用 javascript 访问(编辑和阅读)与我共享的谷歌文档

javascript - ajax 调用后排序器插件不起作用(jquery tablesorter)

javascript - 如何将指向外部营销视频的链接添加到站点主页?

javascript - 圆半径的 Mapbox setPaintProperty 未更新图层

php - Facebook 集成 - 您是否需要单独的页面来与自定义对象交互,或者页面上可以有多个对象吗?

php - 在网站上调整图像大小以提高效率。