检查html5在线状态的最佳方法

时间:2012-05-13 14:48:10

标签: javascript html5 extjs

如果浏览器连接到互联网,我需要了解我的网络应用。这意味着我必须使用云数据或本地存储。

当我使用navigator.onLine时,只有chrome告诉我真相。 Firefox或Safari仅检查我是否连接到Wi-Fi。

我创建了一个向特定网站发送ping并尝试每次都下载一个小文件的函数,但是如果我在移动设备上使用我的网络应用程序,这不是一个好的解决方案。

任何人都可以告诉我另一个想法吗?

1 个答案:

答案 0 :(得分:2)

这取决于你所谓的'连接到互联网'。从浏览器到服务器资源的路径上有很多点可能会失败。这是你当地的联系吗?您的默认网关出现问题?更广泛的网络上的路由问题?您尝试访问的服务器应用程序出现问题?

绝对确保您所需资源可用的唯一方法是尝试获取所需的资源,在旅途中无任何问题。但是如果你在确定确实存在问题之前必须等待超时,那么检查它可能会很慢。

您是否考虑过一种离线运行浏览器应用程序的不同方法,即始终将数据保存到localstore并定期将其同步到服务器异步?您可以向用户提供有关与服务器的同步是否成功的反馈,但要确保数据总是在本地保存,无论如何。

我知道有一个图书馆可以帮助解决这个问题,即新的Microsoft Single Page Application framework。当然还必须有其他非Microsoft等价物。

编辑: This looks like a very interesting ground-up approach as to how you might do this.

如果你想自己写一些东西,有关于这种方法的问题:Question on offline HTML5 database sync.