2014-04-11 2 views
1

각도가 가능한 js에 $ http 서비스가 있으며 캐시를 사용할 수 있습니다. 처음으로 앱 서비스를로드하면 호출이 발생하고 캐시를 가져옵니다. 이제 어디서나 같은 페이지에서 서비스를 호출하면 데이터가 캐시에서 비롯되지만 페이지 경로를 변경하고 다른 페이지에서 서비스를 다시 호출하면 서버에서 데이터가 수신됩니다 (페이지를 새로 고치지 않는 경로를 변경하는 중입니다)

편집 => 코드가 작동했습니다! 경로에서 데이터는 캐시에서도 가져 왔지만 다른 호출이 거의 없으므로 시간이 더 걸립니다.

을 : 그것은 단지 내가 그때는 3ms의 여기

내 서비스 컨트롤러에서

commonServicesModule.service('getDetails', ['$http', 'urlc', 
    function($http, urlc) { 

     return { 
      consumer: { 
       profile: function(id) { 
        return $http({ 
         url: urlc.details.consumer.profile, 
         cache: true, 
         params: { 
          'consumer_id': id, 
          'hello': id, 
         }, 
         method: 'GET', 
        }).success(function(result) { 
         return result; 
        }); 
       }, 

      } 
     } 
    } 
]) 

호출되는 2ms의 소요됩니다 모든 클릭 이벤트에서 같은 전화 .If를 응답 캐시를 접수 한 후 많은 시간이 걸렸습니다

start = new Date().getTime(); 
      /*get user information */ 
      getDetails.consumer.profile('1').then(function(results) { 

       console.log('time taken for request form listCtrl ' + (new Date().getTime() - start) + 'ms'); 
      }); 

내가 경로를 지정한 후 다른 곳에서 전화를 걸면 같은 시간이 걸립니다.

+0

반환에서 '소비자'개체를 끌어 시도, 함수 본문으로 위로 이동 , 그 곳에서 그것을 정의하는 대신 당신의 반환에서 그것을 참조하십시오. –

+0

@marck .. 코드를 넣을 수 없습니까? –

답변

0

함수의 본문에 consumer 움직이는 물체를 시도하고과 같이, 그것에 대한 참조를 반환 :

commonServicesModule.service('getDetails', ['$http', 'urlc', function($http, urlc) { 

    var getConsumer = { 
     profile: function(id) { 
      return $http({ 
       url: urlc.details.consumer.profile, 
       cache: true, 
       params: { 
        'consumer_id': id, 
        'hello': id, 
       }, 
       method: 'GET', 
      }).success(function(result) { 
       return result; 
      }); 
     } 
    }; 

    return { consumer: getConsumer }; 

}]); 
관련 문제