2013-05-31 4 views
3

Я пытаюсь получить продолжительность каждого HTTP-запроса, который я отправляю через Angular.js, чтобы я мог отправить его в аналитику New Relic. Я могу использовать transformRequest для поиска, когда запускается любой HTTP-запрос, и я могу использовать responseInterceptors для получения завершенного запроса. Но я не могу найти способ связать эту информацию вместе.Получить время запроса HTTP в angular.js?

Любые предложения по получению длительности HTTP-запросов? В идеале что-то работает с Angularjs Rails Ресурс: https://github.com/FineLinePrototyping/angularjs-rails-resource?

ответ

1

Я получил этот код из одного из блогов для рендеринга наложений по умолчанию, когда сделан запрос http. Я немного изменил его, чтобы решить вашу проблему. Посмотрите, поможет ли это.

angular 
    .module('analytics', []) 
    .config(function($httpProvider) { 
     $httpProvider.responseInterceptors.push(function() { 
      return function(promise) { 
       // START YOUR TIMER 
       var callReturn = function(r) { 
        // END YOUR TIMER 
        total_time = START TIMER - END TIMER 
       }; 

       return promise.then(callReturn, callReturn); 
      }; 
     }); 
    }); 
+0

А, я уже несколько часов танцую вокруг. Он работает, если вы добавите 'return r;' в 'callReturn'. – EmptyArray

+0

На самом деле, я не могу заставить это решение работать, потому что я не знаю, как запустить таймер, специфичный для HTTP-запроса. Это означает, что с несколькими одновременными запросами он путает начало или конец разных запросов. – EmptyArray

+0

@ EmptyArray вы нашли решение для этого? –

Смежные вопросы