检查连接状态后重定向到其他页面

时间:2018-05-29 04:57:29

标签: javascript asp.net

我有一个页面,将在30秒后重定向到其他页面..在此之前..它将首先检查连接状态..如果连接可用,那么它将继续重定向到下一页..如果连接不可用,则它将保留在当前页面(停留)..

问题是,在检测到连接处于脱机状态后,即使连接可用而没有刷新页面,它仍将保留在当前页面。如何重新检查连接状态?我的意思是离线状态并自动检测连接可用性并转到下一页......

<script type='text/javascript'>
        function Redirect() {
            if (Offline.state === 'up'){
                window.location = "../Offline/FPDTest.aspx";}
        }
        setTimeout('Redirect()', 30000);
</script>

4 个答案:

答案 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>