大家好,
我正在开发基于 Ionic 的应用程序 - 所以是 AngularJS。在我对应用程序的测试中,我将我的设备连接到一个非常慢的 wifi,以测试应用程序如何响应......这很糟糕,但还算不错,因为问题非常局部化。
起初,应用程序根本无法加载。 Channel not fired: onDOMContentLoaded
出现在控制台中,并且警告显示 Application Error - The connection to the server was successful。 (file:///android_asset/www/index.html)
.
我按照这里的提示:increase loadUrlTimeoutValue
应用停止崩溃。但它会保持在白屏上,直到最终 index.html 中唯一的 http 调用失败:
http://maps.googleapis.com/maps/api/js?key=myKey&libraries=places
控制台记录 Failed to load resource: net::ERR_TIMED_OUT
和应用程序像往常一样引导。第二件事,必须在应用程序库中显示的图像不会显示,在长时间加载后让我得到一堆408(请求超时)
,例如
GET http://res.cloudinary.com/myimage.jpg 408 (Request Time-out)
所以我的猜测是,在这个非常慢的 wifi 上,所有 http 调用都是一个问题 - 它们只是在一段时间后失败并返回控制台能够显示的错误。
我的简单问题:如何在全局范围内捕获该类型的错误以便能够向用户显示消息?或者更好的是,监听任何 http 调用并在 5 秒左右后超时以显示所述消息?
提前致谢!
最佳答案
Angular $http服务在配置参数中有一个 timeout
属性。您可以将其设置为 5s(5000,因为它以毫秒为单位)。然后就可以在错误回调中处理超时了。
关于javascript - 在 angularJs 中处理资源和图像超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37595850/