javascript – 从gapi.client.load捕获错误
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了javascript – 从gapi.client.load捕获错误,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2263字,纯文字阅读大概需要4分钟。
内容图文
![javascript – 从gapi.client.load捕获错误](/upload/InfoBanner/zyjiaocheng/818/261c35d1cff24d09921c3156062b4d56.jpg)
我正在使用带有Java和Google Cloud Endpoints的Google App Engine.在我的JavaScript前端,我正在使用此代码来处理初始化,as recommended:
var apisToLoad = 2;
var url = '//' + $window.location.host + '/_ah/api';
gapi.client.load('sd', 'v1', handleLoad, url);
gapi.client.load('oauth2', 'v2', handleLoad);
function handleLoad() {
// this only executes once,
if (--apisToLoad === 0) {
// so this is not executed
}
}
如何在gapi.client.load失败时检测并处理?目前我收到一条错误信息,打印到JavaScript控制台上,显示:无法获取网址:https://webapis-discovery.appspot.com/_ah/api/static/proxy.html).也许这是我的错,或者这可能是谷歌的一个暂时问题 – 现在这不是我的担忧.我正试图利用这个机会在客户端很好地处理这些错误.
那么 – 我该如何处理呢? handleLoad没有为errs的调用执行,gapi.client.load似乎没有单独的错误回调(见the documentation),它实际上没有抛出错误(只将它打印到控制台),并且它不返回任何东西.我错过了什么?到目前为止,我唯一的想法是设置超时并假设如果在X秒后初始化没有完成则出现错误,但这显然不太理想.
编辑:
这个问题再次出现,这次是在尝试加载oauth东西时出现ERR_CONNECTION_TIMED_OUT消息(这绝对是我无法控制的).同样,我不是要修复错误,它只是确认它值得检测和优雅处理.
解决方法:
不幸的是,这里的文档非常无用,调试相关代码并不容易. gapi.client.load()显然是插入一个< iframe>每个API的元素.然后该框架提供必要的功能并允许通过postMessage()访问它.从它的外观来看,API不会将加载事件监听器附加到该框架,而是依赖框架本身来指示它已准备好(这将导致在回调中被触发).因此,缺失的错误回调是一个固有的问题 – API无法看到失败,因为没有帧可以发出信号.
从我所知道的,你可以做的最好的事情是将你自己的加载事件监听器附加到文档(事件将从框架中冒出来)并在加载时检查自己.警告:虽然这可能适用于当前版本的API,但由于该API的实现发生更改,因此无法保证将来继续使用.目前这样的事情应该有效:
var framesToLoad = apisToLoad;
document.addEventListener("load", function(event)
{
if (event.target.localName == "iframe")
{
framesToLoad--;
if (framesToLoad == 0)
{
// Allow any outstanding synchronous actions to execute, just in case
window.setTimeout(function()
{
if (apisToLoad > 0)
alert("All frames are done but not all APIs loaded - error?");
}, 0);
}
}
}, true);
只是重复上面的警告:这段代码做了很多假设.虽然这些假设可能会在这个API中保持一段时间,但也可能是Google会改变某些内容并且此代码将停止运行.甚至可能是Google根据浏览器使用不同的方法,我只在Firefox中测试过.
内容总结
以上是互联网集市为您收集整理的javascript – 从gapi.client.load捕获错误全部内容,希望文章能够帮你解决javascript – 从gapi.client.load捕获错误所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。