Javascript 如果加载当前页面花费x秒,是否重定向到另一页面?

Javascript 如果加载当前页面花费x秒,是否重定向到另一页面?,javascript,php,Javascript,Php,只是好奇这是否可能。我使用的是一个API,一个函数有时需要很长时间才能完成,甚至超时,这取决于它的感觉。有没有一种方法(使用PHP、Javascript等)能够在X秒后停止页面加载并重新定向到另一个页面 具体来说,我使用的表单是使用标准表单发布机制发布到API的。根据延迟缓慢页面响应的原因,浏览器可能在表单提交后的一段时间内不会删除上一页。这意味着您有机会使用setTimeout进行重定向 document.querySelector("selector-for-the-form").addEv

只是好奇这是否可能。我使用的是一个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);
在Chrome、Firefox和IE上,当我在默认设置中发布到这个简单的PHP页面时,这对我来说是有效的,它会进行五秒钟的忙碌等待:

<!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页面开始向浏览器发送数据是否需要几秒钟。例如,如果它没有缓存,并立即开始发送响应,但随后需要很长时间才能完成发送响应,浏览器可能会撕毁该页面并开始构建新页面。

@T.J.Crowder您好,这是在完成表单并单击提交按钮后发生的。然后将其发布到API上。@T.J.Crowder是的。工作正常。谢谢你!