【问题标题】:what if google.load fails? [duplicate]如果 google.load 失败怎么办? [复制]
【发布时间】:2010-12-31 08:06:02
【问题描述】:

想知道是否有一种简单的方法可以在 google.load() 上设置故障保护

Google 无法提供文件但我可以提供文件的可能性很小,但我认为让我自己的服务器能够提供故障转移以防请求爆炸或超时等情况可能会很有趣。

有什么想法吗?

我正在使用 MS Visual Studio 2008 / C#

【问题讨论】:

  • 谷歌说:“谷歌永远不会失败!”

标签: jquery failover google.load


【解决方案1】:

这种情况的可能性很小,以至于这可能属于过度思考的事情。实际上,与 Google 的设置相比,您自己的服务器离线的可能性要大得多。除非您在自己的网站上定期处理价值数百万美元的交易,否则这将是一项不必要(并且可能不可靠)的工程。

google.load 有一个回调参数,但是,它会在成功而不是失败时调用。我不确定失败时会发生什么,因为我从未能够加载 JS API,但不能加载 Google 托管的其余 JS 文件。这就是诀窍。如果您可以首先致电google.load,则可以确定可以访问 Google 服务器。如果出于某种疯狂的原因,Google 服务器已关闭,那么google 对象将永远不会被首先定义。我不知道是否有任何官方记录的方法来检测故障,但我想您可以检测是否定义了 google 对象并在那时自己加载您自己托管的脚本版本。

如果您确实走这条路,您可以通过在您的主机文件中将google.com 指向像0.0.0.0 这样的虚假内容来测试它。如果此时仍然存在诸如onload 事件之类的问题,我不会感到惊讶,因为事件可能在事件处理程序甚至在故障转移情况下注册之前就已被触发。

【讨论】:

  • 我知道 google 的服务器比我自己的服务器可靠得多……但我不喜欢让它们决定我网站的稳定性的想法。由于 jquery 变得如此重要,我喜欢保持控制(但共享带宽 ;-) 感谢您的反馈。
  • 很公平。尽管使用googleapis.com 主机名在一定程度上缓解了其他人关于谷歌域被阻止的观点。尽管您可能仍会被过分热心的内容过滤器阻止。 HTTP 请求可能真正失败的原因有很多。几乎不值得为所有这些问题付出努力,因为在大多数情况下,错误恢复过程并不完美或没有经过充分测试,或者它只是直接不可恢复。考虑到您的时间是有限的,而工程资源最好花在其他事情上。
猜你喜欢
  • 2011-04-26
  • 1970-01-01
  • 2019-02-10
  • 2011-06-14
  • 2012-08-01
  • 1970-01-01
  • 2016-01-11
  • 2021-12-22
  • 1970-01-01
相关资源
最近更新 更多