Javascript navigator.onLine的Internet连接状态无法正常工作,并且在Internet未连接时显示错误的状态

Javascript navigator.onLine的Internet连接状态无法正常工作,并且在Internet未连接时显示错误的状态,javascript,html,web-deployment,Javascript,Html,Web Deployment,我正在创建一个基于web的应用程序,它可以脱机工作,也可以联机工作。因此,我需要检查互联网是否正常工作。目前我正在使用 navigator.onLine 在JavaScript中。我试过这样的东西 if (navigator.onLine) { // Internet is connected // work in online Mode } else{ // Internet is disconnected // work in offline mode }

我正在创建一个基于web的应用程序,它可以脱机工作,也可以联机工作。因此,我需要检查互联网是否正常工作。目前我正在使用

navigator.onLine

在JavaScript中。我试过这样的东西

if (navigator.onLine) {
    // Internet is connected
    // work in online Mode
}
else{
    // Internet is disconnected
    // work in offline mode
}

它的工作很好,但有时它给出了错误的状态。当我更改我的ip和/或网关并将它们设置为错误以断开internet访问时,我注意到了这一点。更改myip后未访问任何网页,但
navigator.onLine
联机显示internet状态。我重新启动了系统,清除了浏览器缓存,但我面临着同样的问题。我也读到了人们面临的同样问题,但没有得到一个好的解决方案。我怎样才能解决这个问题!任何建议

如本功能文档中所述:

在Chrome和Safari中,如果浏览器无法连接到局域网(LAN)或路由器,则浏览器处于脱机状态;所有其他条件都返回true。因此,虽然您可以假设浏览器在返回假值时处于脱机状态,但不能假设真值必然意味着浏览器可以访问internet。您可能会得到误报,例如计算机运行的虚拟化软件具有始终“连接”的虚拟以太网适配器。因此,如果您确实想确定浏览器的联机状态,您应该开发其他检查方法

这意味着您不能依赖此功能来确定连接性。现在,这取决于您的应用程序—您可以做什么。一种方法是将心跳数据包发送到服务器上的某个REST接口