【问题标题】:How can I make Offline.js distinguish between genuine offline behavior and the server being down?如何让 Offline.js 区分真正的离线行为和服务器宕机?
【发布时间】:2015-08-10 16:53:07
【问题描述】:

我们的团队已经开始使用Offline.js,这是一个可以检测用户是否离线的库。我们目前已将其设置为使用以下代码在我们的服务器上查找图像:

Offline.options = {checks: {xhr: {url: 'resources/bower/offline/img/tiny-image.gif'}}};

但是,我们发现如果我们的服务器出现故障,最终用户会收到一条错误消息,指出他们的互联网已断开连接,这是不正确的。他们的互联网很好,这是我们这边的问题。

我不认为可以通过正常运行时间更可靠的网站进行检查;它一定是我们服务器上的东西。来自 Offline.js 文档:

确保您检查的 URL 与您的页面具有相同的来源(连接方法、域和端口都必须相同),否则您将遇到 CORS 问题。

那么我怎样才能让 Offline.js 区分真正的离线行为和服务器宕机呢?

【问题讨论】:

  • 如果您添加了第二个检查,该检查在 CDN 上遇到了一些静态的东西,这样它就不会崩溃了?
  • @NuclearGhost 我不知道您可以进行两次检查。我该怎么做?我是否将xhr 的值设为数组?另外,我不确定我是否完全理解您所说的在 CDN 上点击静态内容的意思。
  • 那么,您的服务器间歇性停机,您的解决方案是检测问题,没有解决?看起来像一个XY问题。 ——还有CDN(内容交付网络)。谁说你必须检测到你的服务器宕机了?如果您有中断的历史,请使用更可靠的东西,例如 code.jquery.com 或其他。
  • @BradChristie Offline.js 的目的是通知用户存在阻止他们连接到互联网的客户端错误。也许他们的路由器停止工作或者他们拔掉了他们的以太网线。所以实际上没有任何计划来解决这个错误。此外,Offline.js 要求您检查的任何内容与您的页面相同。所以我认为不可能连接到code.jquery.com
  • 你换个消息怎么样?无论应用程序无法回拨到服务器的确切原因如何,该应用程序的行为都应该是相同的。只有消息不正确。

标签: javascript offline.js


【解决方案1】:

我在https://github.com/hubspot/offline 的offline.js 文档中看到了这一点:

如果您确实想在不同的域上运行测试,请尝试使用图片 方法。它加载允许跨域的图像。

Offline.options = {checks: {image: {url: 'my-image.gif'},活动: '图像'}}

所以你可以使用类似谷歌标志的东西:

Offline.options = {checks: {image: {url: 'https://www.google.com/images/srpr/logo11w.png'}, active: 'image'}}

【讨论】:

  • 这样就解决了问题。谢谢,享受赏金!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-05-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-02-03
  • 2018-05-15
相关资源
最近更新 更多