如果浏览器连接到互联网,我需要了解我的网络应用程序是否正常工作。这意味着我必须使用云数据或本地存储之一。
当我使用 navigator.onLine 时,只有 chrome 告诉我真相。Firefox 或 Safari 仅检查我是否连接到 wi-fi。
我创建了一个向特定网站发送 ping 的函数,并尝试每次下载一个小文件,但如果我在移动设备上使用我的网络应用程序,这不是一个好的解决方案。
谁能告诉我另一个想法?
如果浏览器连接到互联网,我需要了解我的网络应用程序是否正常工作。这意味着我必须使用云数据或本地存储之一。
当我使用 navigator.onLine 时,只有 chrome 告诉我真相。Firefox 或 Safari 仅检查我是否连接到 wi-fi。
我创建了一个向特定网站发送 ping 的函数,并尝试每次下载一个小文件,但如果我在移动设备上使用我的网络应用程序,这不是一个好的解决方案。
谁能告诉我另一个想法?
这取决于您所说的“连接到互联网”是什么意思。从浏览器到服务器资源的路径上有很多可能会失败的点。是你的本地连接吗?您的默认网关有问题吗?更广泛的网络上的路由问题?您尝试访问的服务器应用程序有问题吗?
绝对确定您需要的资源是可用的,并且在旅途中的任何地方都没有问题的唯一方法是尝试获取您需要的资源。但是,如果您必须等待超时才能确定确实存在问题,那么检查这一点可能会很慢。
您是否考虑过另一种离线运行浏览器应用程序的方法,即始终将数据保存到本地存储并定期将其异步同步到服务器?您可以向用户提供有关与服务器同步是否成功的反馈,但对数据始终保存在本地感到满意。
我知道一个对此有帮助的库,那就是新的 Microsoft Single Page Application framework。当然,还必须有其他非微软的等价物。
编辑: 这看起来是一个非常有趣的从头开始的方法,你可以如何做到这一点。
如果您想自己写一些东西,那么关于这种方法有一些问题:关于离线 HTML5 数据库同步的问题。