2018年如何检测浏览器是否离线?

Rya*_*ggs 5 javascript browser offline offline-browsing

曾经存在用于检测连接的offline.js,但该项目不再维护。此外,众所周知,浏览器的“navigator.onLine”属性不可靠

用于主动检测浏览器在线状态的最佳/最新方法是什么,与现代浏览器(包括移动设备浏览器)兼容,可以在在线状态发生变化时引发各种事件?我需要自己写这个,还是重新发明轮子?

请注意,我的用户群中没有人会为了联机/脱机而更改浏览器中的“脱机工作”设置。相反,他们会拔掉网线,断开 wifi 网络,开车到没有信号的地方等等。

我的想法是简单地设置一个超时以重复对我服务器上的 URL 进行 AJAX 调用,并简单地将“在线”变量设置为 true/false 以及根据 AJAX 的错误/成功调用在线/离线回调函数称呼。这是推荐的方式吗?