我想知道何时失去互联网连接并重新获得互联网,以便可以在显示“糟糕,没有互联网”的警报和包含从我的服务器派生的数据的Google地图或网格之间切换。
这个相关的问题和另一个相关的问题认为他们有答案,但没有答案。
他们的解决方案适用于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解决方案
我所知道的最好的方法是拦截HTTP处理程序,如果它是401/501 / etc然后根据
例如:
angular.module('myApp', ['myApp.services'],
function ($httpProvider) {
var interceptor = ['$rootScope', '$q', function ($rootScope, $q) {
function success(response) {
return response;
}
function error(response) {
var status = response.status; // error code
if ((status >= 400) && (status < 500)) {
$rootScope.broadcast("AuthError", status);
return;
}
if ( (status >= 500) && (status < 600) ) {
$rootScope.broadcast("ServerError", status);
return;
}
// otherwise
return $q.reject(response);
}
return function (promise) {
return promise.then(success, error);
}
}];
$httpProvider.responseInterceptors.push(interceptor);
然后在侦听on的代码中,只需添加
$rootScope.$on("ServerError", someServerErrorFunction);
您还可以添加一个内部标志,并仅在该标志更改时广播。
但是,如果您正在寻找用户与服务器之间的通信不频繁的解决方案,则可以添加一个部分来每分钟左右ping服务器一次,但是可能并没有响应。
问题内容: 我正在尝试使用HTML5联机和脱机事件来准确检测浏览器何时脱机。 这是我的代码: 当我在Firefox或IE上单击“脱机工作”时,它工作正常,但是当我拔掉电线时,它是随机工作的。 检测此更改的最佳方法是什么?我想避免重复超时的ajax调用。 问题答案: 浏览器供应商无法就如何离线定义达成一致。某些浏览器具有“脱机工作”功能,他们认为这与缺少网络访问权限是分开的,这又不同于Interne
在渲染器进程中,使用标准HTML5 API实现在线和离线事件检测,例子: main.js 1 const {app, BrowserWindow} = require('electron') 2 3 let onlineStatusWindow 4 5 app.on('ready', () => { 6 onlineStatusWindow = new BrowserWindow({ wi
开发离线应用的第一步是要知道设备是在线还是离线,HTML5为此定义了一个navigator.onLine属性,这个属性值为true 表示设备能上网,值为false 表示设备离线。这个属性的关键是浏览器必须知道设备能否访问网络,从而返回正确的值。实际应用中,navigator.onLine 在不同浏览器间还有些小的差异。 IE6+和Safari 5+能够正确检测到网络已断开,并将navigator.
本文向大家介绍Python检测QQ在线状态的方法,包括了Python检测QQ在线状态的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了Python检测QQ在线状态的方法。分享给大家供大家参考。具体实现方法如下: 希望本文所述对大家的Python程序设计有所帮助。
我正在使用Spring靴与尤里卡,它的工作真的很好。但几个小时后,我想更快地检测离线Eureka实例/客户端,但我没有找到关于Eureka配置属性的好文档。我甚至不确定这是否可能,因为Eureka似乎假定客户每30秒发送一次更新。 我开始停用自我保护模式,提高更新和间隔更新的速度,降低过期时间,但我的Eureka服务器仍然需要两分钟来发现它的离线客户端。
问题内容: 在Linux环境中,我需要检测RJ45连接器与其插槽的物理连接或断开连接状态。最好仅使用BASH脚本。 在其他站点上提出的以下解决方案不适用于此目的: 使用’ifconfig’-由于可以连接网络电缆,但网络配置不正确或当前未启动。 ping主机-因为产品将使用未知的网络配置和未知的主机位于LAN内。 / proc文件系统中没有可用的某种状态(其他所有文件都在其中)吗? Linux世界应