我有一个页面,将在30秒后重定向到其他页面..在此之前..它将首先检查连接状态..如果连接可用,那么它将继续重定向到下一页..如果连接不可用,则它将保留在当前页面(停留)..
问题是,在检测到连接处于脱机状态后,即使连接可用而没有刷新页面,它仍将保留在当前页面。如何重新检查连接状态?我的意思是离线状态并自动检测连接可用性并转到下一页......
<script type='text/javascript'>
function Redirect() {
if (Offline.state === 'up'){
window.location = "../Offline/FPDTest.aspx";}
}
setTimeout('Redirect()', 30000);
</script>
答案 0 :(得分:0)
@Muhammad Faiz,使用setInterval()方法。 on body onload事件把你的功能。此方法调用定期的时间间隔。让我们说如果你每5秒就给5000一次,它会打电话。现在,当连接发现下一个调用重定向到FPDTest.aspx页面时。
请参阅this链接以获取更多信息。
例如,如果您有2页让我们说它的WebForm1.aspx和WebForm2.aspx那么两个页面的结构将是
WebForm1.aspx的
<!DOCTYPE html>
<html>
<head>
<script type='text/javascript'>
function Redirect() {
console.log("hello");
if (navigator.onLine) {
window.location = "WebForm2.aspx";
}
}
</script>
</head>
<body onload="setInterval(function(){ Redirect();}, 5000);">
</body>
</html>
Webform2.aspx将是..
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
</body>
</html>
注意:如果您按照我的示例,这两个页面都必须有单独的正文标记。
您可以通过开启/关闭互联网连接来检查它。同时确保您的localhost正在运行。
答案 1 :(得分:0)
可以收听online/offline个活动,并为每个
做任何您需要的事情window.addEventListener('offline', function(e) {
console.log('offline');
});
window.addEventListener('online', function(e) {
console.log('online');
});
答案 2 :(得分:0)
使用该库,您可以收听up
事件
Offline.on("up", (ev)=> {
window.location = "../Offline/FPDTest.aspx";
});
这将阻止您在间隔中不必要地调用该函数。您可以通过Offline.off("up");
您可以在30秒后取消绑定事件。
setTimeout(()=>{
Offline.off("up");
}, 30000);
答案 3 :(得分:0)
请尝试
<script type='text/javascript'>
function Redirect() {
if (Offline.state === 'up'){
window.location = "../Offline/FPDTest.aspx";}
};
Offline.on('up', function () {
setTimeout(function(){ Redirect();}, 3000);
});
</script>