我现在专注于使用HTML5的离线Web应用程序。我来到了需要一种可靠的方法来检查用户的连接,以确定他/她目前是在线还是离线。由于我了解到navigator.onLine属性高度不可靠,因此我使用缓存清单的回退区域找到了一个非常好的方法。我从两本不同的书中实现了两个类似的解决方案,一个是“Introducing HTML5”(Lawson/Sharp)和一个“HTML5:The Missing Manual”(MacDonald)。我想这是一个HTTP缓存(我使用Apache和本地主机)的问题,我不太了解这些。我粘贴了我的代码,这是几个文件,但代码很少。HTML5:使用清单回退来检查用户的连接
从引入适合的解决方案HTML5: http://pastebin.com/UGsmnAtK
从HTML5的适应解 - 失踪手册: http://pastebin.com/8v5ck3E6
使用Chrome 16测试...
===我想要什么===
- 用空缓存启动应用程序并运行apache
- 点击按钮 - >警报 “在线” 显示
- 停止Apache
- 点击按钮 - >警报 “离线” 显示
- 启动Apache
- 点击按钮 - >警报 “在线”显示
===会发生什么===
介绍HTML5解决方案: - 空缓存和运行的Apache启动应用程序- 点击按钮 - >警报“在线”显示 - 停止Apache - 点击按钮 - >警报“在线”显示 - 启动Apache - 点击按钮 - >警报“在线”显示
HTML5:缺少手动解决方案: - 空缓存和运行的Apache 启动应用程序 - 点击按钮 - >警报“在线”显示 - 停止Apache - 点击按钮 - >警报“在线”显示 - 启动apache - 点击按钮 - >提示“Online”显示为
其他场景和用例也以类似的方式失败。这些书承诺您可以随时使用他们的方法检查用户的连接。所以我想我在这里做错了什么。我会很感激地接受关于这个话题的任何想法。
干杯, 菲利克斯
嗨莫里斯,非常感谢你的回答,你真的帮了我很多!我只是试图添加查询字符串,它真的工作!每按一下按钮,就会在'online.js'上调用GET请求。也许我通常应该更多地了解所有这些Apache技术。在stackoverflow上的第一篇文章,立即成功!干杯,菲利克斯 – Felix 2011-12-21 19:01:25
嗨菲利克斯,没有具体的Apache关于此,我只是稍微改变了网址,以避免浏览器缓存online.js。请接受答案,以帮助其他遇到此问题的人。 – Maurice 2011-12-21 19:17:38