这就是我在vanilla javascript中检查互联网连接的方法:
setInterval(function(){
if(navigator.onLine){
$("body").html("Connected.");
}else{
$("body").html("Not connected.");
}
},1000);
Run Code Online (Sandbox Code Playgroud)
我的项目中有角度控制器和模块.我应该把代码放在哪里?它应该在全局上下文中执行,而不是分配给某个控制器.是否有某种全球控制器?
我想知道什么时候互联网连接丢失并重新获得,以便我可以在一个警告"哎呀,没有互联网"和谷歌地图或包含从我的服务器派生的数据的网格之间切换.
他们的解决方案适用于Chrome版本34.0.1847.137 m,MS IE v11.0.xx,但不适用于FireFox v29.0.1,因此我正在寻找适用于所有这三种浏览器的解决方案.
[更新] AS @Quad指出,有不同的方法来定义在线意味着什么.我将其定义为"我可以获取我需要向用户显示的数据吗?".
我有几个服务,负责从几个服务器获取数据(什么是最好的?单个,参数化,服务?每个服务器一个服务?或每个服务器每种类型数据一个服务?我在考虑后者,因为每个服务都可以然后映射到映射到视图的控制器.但我是Angular的新手,所以可能是错的).
另外,我编写了一个服务,负责在连接丢失时尝试重新连接.
任何尝试$http.get和获得404的人都可以调用
1)广播说没有互联网的服务(这样其他人就不会尝试连接)
2)定期尝试连接到我的服务器
3)成功时,停止连接尝试并广播该应用现在再次在线.
然而,这似乎非常笨拙,两个相关问题提供的解决方案似乎很优雅 - 除了FF :-(
我不能在这里重新发明轮子.其他人如何做到这一点?事实上,我很惊讶,还没有一个"正式的"Angular解决方案
angularjs ×2