【问题标题】:Handle resources and images timeout in angularJs在 angularJs 中处理资源和图像超时
【发布时间】:2016-06-02 15:17:12
【问题描述】:

大家好,

我正在开发一个基于 Ionic 的应用程序 - 所以是 AngularJS。在我对应用程序的测试中,我将我的设备连接到一个非常慢的 wifi,以测试应用程序如何响应......这很糟糕,但还不错,因为问题非常本地化。

起初,应用程序根本无法加载。 Channel not fired: onDOMContentLoaded 出现在控制台中,并且警报显示Application Error - The connection to the server was unsuccessful. (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 (Request Time-out)

GET http://res.cloudinary.com/myimage.jpg 408 (Request Time-out)

所以我的猜测是,在这个非常慢的 wifi 上,所有 http 调用都是一个问题——它们只是在一段时间后失败并返回控制台能够显示的错误。

我的简单问题:如何全局捕获该类型的错误以便能够向用户显示消息?或者更好的是,听任何 http 调用并在 5 秒左右后让自己超时以显示所述消息?

先谢谢了!

【问题讨论】:

    标签: javascript angularjs http ionic-framework


    【解决方案1】:

    Angulars $http 服务在配置参数中有一个 timeout 属性。您可以将其设置为 5 秒(5000 以毫秒为单位)。然后你可以在错误回调中处理超时。

    【讨论】:

    • 感谢您的回答。我知道这一点,但它确实无济于事,因为我没有在任何地方调用 $http 服务。正如我所说,这是一个调用 maps api 的脚本标签,以及带有 url 参数的 img 标签。
    • 不是 Angular 的问题,不,但是从理论上讲,全局处理这个问题的方法并不奇怪——也许是要设置的全局配置或者我还没有听说过的东西......无论如何,一个常规的 Javascript 方式也可能导致解决方案。
    猜你喜欢
    • 2012-11-01
    • 1970-01-01
    • 2014-03-04
    • 1970-01-01
    • 1970-01-01
    • 2018-06-05
    • 2014-09-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多