2009-12-31 135 views
1

好奇是否有一个简单的办法有一个故障开的google.load()如果google.load失败,该怎么办?

的可能罩,谷歌无法提供该文件,但我可以是相当渺茫,但我想这可能是有趣的,有我自己的服务器能够提供故障转移以防万一请求炸弹或超时或什么的。

有什么想法?

我使用MS Visual Studio 2008中/ C#

+0

谷歌说:“谷歌永远不会PHAIL!” – mauris 2009-12-31 05:02:38

回答

0

的这个机会是非常小,这可能属于过度思考事物的类别。实际上,你自己的服务器比谷歌的设置更有可能脱机。除非您定期在您的网站上处理数百万美元的交易,否则这将是一个不必要的(也可能是不可靠的)工程。

google.load有一个回调参数,然而,这被称为成功而不是失败。我不确定在失败时会发生什么,因为我从来没有能够加载JS API,但没有加载其他Google托管的JS文件。这就是诀窍。如果您首先可以拨打google.load,则可以确定Google服务器可以访问。如果出于某种疯狂的原因Google服务器停机,那么google对象将永远不会被首先定义。我不知道是否有任何正式记录的方法来检测失败,但我想你可以检测是否定义了对象,并在此时自行加载自己的宿主版本的脚本。

如果你确实按照这条路线行事,你可以在你的主机文件中指向google.com到类似0.0.0.0的东西来测试它。如果在这一点上仍存在问题,例如onload事件,我不会感到惊讶,因为在事件处理程序甚至在故障转移事件中注册之前事件可能已被触发。

+0

据我所知,谷歌的服务器比我自己的可能性更可靠...但我不喜欢让他们确定我的网站的稳定性的想法。由于jquery变得如此重要,我喜欢保持控制(但共享带宽;-)感谢您的反馈。 – tnriverfish 2009-12-31 17:10:58

+2

够公平的。尽管其他人关于Google域名被阻止的观点可以通过使用googleapis.com主机名来缓解。尽管您可能仍然被过度热情的内容过滤器阻止。 HTTP请求可能会失败的原因有很多。解决所有这些问题很少值得付出,因为大多数情况下,错误恢复过程并不完美或经过充分测试,或者只是直接不可恢复的。考虑你的时间是有限的,并且工程资源可能会更好地花在其他事情上。 – 2009-12-31 17:54:25

相关问题