在Angular.js中查找REST调用的持续时间

时间:2014-06-27 21:30:19

标签: angularjs angularjs-service

我想了解REST服务发送回promise对象所花费的时间。如果REST服务花费的时间超过了 x 秒,我需要向用户显示一个微调器,一旦获得了promise对象,就应该继续正常流程。

有什么想法吗?

由于

3 个答案:

答案 0 :(得分:3)

记录请求的时间似乎是不必要的。

为什么不总是设置超时,在x秒后触发微调器。 在promise的成功回调中,你可以破坏超时对象,防止它在x秒之前触发微调器。然后删除微调器(如果存在)。

var duration = 1000 * 1; //1 sec
var timeout = setTimeout(releaseTheSpinner, duration);
var releaseTheSpinner = function() {
  //Make spinner
}
Something.update(data).
success(function {
  clearTimeout(timeout);
  //kill spinner
})

答案 1 :(得分:1)

使用setTimeout就足够了。例如:

$scope.useHttp = function() {
    $http.get('path/to/stuff')
        .success(function(data) {
            hideSpinner();
            //do stuff with data
        });
    setTimeout(showSpinner,1000); //will show the spinner after a second (1000 milliseconds).
};

答案 2 :(得分:-1)

查看ngProgress指令或angular loading bar directive,它会在页面顶部显示进度。这创建了一种显示进度的通用统一方法。即使服务响应很快(即您不想显示进度),条形图也会快速移动。这不是您问题的直接答案,而是建议的替代方案,可以增加时间安排并显示微调器。