我有这个Web应用程序(使用C#的MVC),就像我客户办公室里的广告一样。我的客户将打开这个"广告页面"并将其显示在大屏幕上给他们的客户。
发生的情况是,每30分钟左右,页面会自动刷新以从数据库中获取最新数据,但是,他们使用WIFI连接到我们的服务器,有时连接速度非常慢(或完全丢失连接) 。我的客户端要求我编写一个代码,以防止在连接错误或没有互联网连接时刷新页面。 (他们不想在广告电视上显示"没有互联网连接"
我知道我无法从服务器端代码做任何事情,因为客户端的机器想要检测互联网连接,因此将客户端代码留作唯一的选择。我不擅长这个,任何人都可以帮助我吗?
答案 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检查结合起来。