检测客户端计算机上的Internet连接

时间:2015-03-24 15:12:03

标签: c# jquery asp.net-mvc

我有这个Web应用程序(使用C#的MVC),就像我客户办公室里的广告一样。我的客户将打开这个"广告页面"并将其显示在大屏幕上给他们的客户。

发生的情况是,每30分钟左右,页面会自动刷新以从数据库中获取最新数据,但是,他们使用WIFI连接到我们的服务器,有时连接速度非常慢(或完全丢失连接) 。我的客户端要求我编写一个代码,以防止在连接错误或没有互联网连接时刷新页面。 (他们不想在广告电视上显示"没有互联网连接"

我知道我无法从服务器端代码做任何事情,因为客户端的机器想要检测互联网连接,因此将客户端代码留作唯一的选择。我不擅长这个,任何人都可以帮助我吗?

3 个答案:

答案 0 :(得分:4)

我建议通过ajax发送“ping”:

var timeStart= new Date().getTime();
$.ajax({
    url:"url-to-ping-response-file",
    success:function(){
        var timeNow = new Date().getTime();
        var ping = timeNow - timeStart;

        //less than one second
        if(ping < 1000){
            window.location.reload();
        }
    }
});

答案 1 :(得分:1)

您可以使用Circuit Breaker Pattern优雅地处理间歇性连接的环境。

以下是2个开源JavaScript实现。我从未使用过任何一种,所以我无法证明它们的质量。

答案 2 :(得分:0)

您也可以使用

 if (navigator.onLine) {
        location.reload();
    }

这不会检测到慢速上网。现在,我不了解您的网页布局,但对于我工作的网站,我倾向于将HTML内容和DATA作为单独的调用。我这样做的MVVM / MVC模式值得学习。我使用angularjs非常棒。

现在..你也可以使用好的旧jQuery替换内容,读取这个Replace HTML page with contents retrieved via AJAX你可以将它与.onLine检查结合起来。

http://www.w3schools.com/jsref/prop_nav_online.asp