사용자가 내 사이트의 메인 페이지에 로그인하면 일반적으로 홈페이지에 꽤 많은 데이터가로드됩니다. 그들이 페이지의 특정 URL에 올 때보 다 훨씬 더. 그들이 ome 페이지를 조회 할 때 실제로 특정 페이지를 조회 할 때 개별적으로 수집하는 많은 데이터의 데이터 요청을 채 웁니다.
저는 $ http 모듈이 $ cache와 어떻게 작동하는지 알고 싶습니다. 개인 홈페이지에서 알 수있는 통화 캐시를 채우기 위해 홈 페이지의 히트 정보를 사용하고 싶습니다.
예를 들어, 내 홈 페이지는/rest/client/101을 호출하는 동안 모든 클라이언트를 반환하는/rest/clients를 호출합니다. 내가 원하는 것은/rest/clients가 먼저 호출 된 다음/rest/client/101이 새로운 신선한 xhr 호출이 호출 될 필요가 없지만 캐시로부터 데이터를 얻을 수 있도록하는 것이다./rest/client/101이 이미 호출 된 경우.
전 데코레이터를 한 적이 없지만 $ http 서비스의 데코레이터라고 생각하고 있습니까? $ http 코드를 살펴 봤는데 캐시가 실제 http 호출의 클로저에 저장되어있는 것처럼 보였고 다음 Get을 제외하고는 노출되지 않았습니다.
누구든지 이와 유사합니까? 나는 그것을 발견 할 수 없었다. 특정 의사 코딩 제안은 매우 환영받을 것입니다.
.factory('myOwnEntity', ['$filter',
function ($filter) {
var myOwnList = [];
return {
set : function (data) {
myOwnList = data;
},
get : function() {
return myOwnList;
},
find : function (id) {
return $filter('filter')(myOwnList, { itemId : id }).pop();
}
}
}
])
나는 웹 서비스에 청원을 할 때, 나는 다음과 같은 정보를 저장 :이 코드를
: 나는 당신을 잘 이해한다면
서버가 적절한 HTTP 헤더를 설정하는 경우, Angular related - 서버가 프로토콜 수준에서 캐싱을하고 있다면 아무 것도 할 필요가 없습니다.나중에 필요한 리소스에 $ http 전화를 걸어 브라우저에서 알아낼 수 있도록하십시오. –
고객이 전화를 걸면 약 300 개의 항목이 있으며 캐시를 프라임하기 위해 300 번의 호출을 원하지 않습니다. 나는 이미 내 클라이언트의 모든 데이터를 가지고있다. (첫번째 것) 그래서 내가하고 싶은 것은 다운로드 한 클라이언트 배열을 통해 javascript for 루프를 만들고 캐시를 설정하는 것이다. $ http 모듈은 이미 $ http 모듈을 사용하고 있기 때문에 (내 중첩을하기 때문에 간단하지는 않다.) 나는 그 논리를 변경할 수없고 여전히 작동한다. 내 코드는 그런 식으로 깨끗하게 유지됩니다. –