생각에는 내가 너무 좋아하는 URL의 목록이 있습니다어떻게 이미지를 캐시에 저장 하시겠습니까?
[ '/images/1', '/images/2', ... ]
을 그리고 이미지 사이를 전환하는 빠른 있도록 사람들의 n
를 프리 페치합니다. 내가 componentWillMount
지금 뭐하는 거지 것은 다음 imgNodes
와
componentWillMount() {
const { props } = this;
const { prefetchLimit = 1, document = dummyDocument, imgNodes } = props;
const { images } = document;
const toPrefecth = take(prefetchLimit, images);
const merged = zip(toPrefecth, imgNodes);
merged.forEach(([url, node]) => {
node.src = url;
});
}
가과 같이 정의되는 :
imgNodes: times(_ => new window.Image(), props.prefetchLimit),
및 times
, zip
및 take
을 ramda에서 오는. 에 관계없이 URL이 사용되는 경우의 Etag
및 Expire
태그에 따라 브라우저 캐시 안타
<img src={url} />
:과 같이 반응의 내부
는 이제 해당 URL을 사용하는 경우. 또한 우리는 같은 방법으로 imgNodes
을 재사용하면서 n - 1
을 뷰 내부에 칠 때마다 다음 n
개의 이미지를 프리 페치 (prefetch) 할 계획입니다.
내 질문은 다음과 같습니다
이도 유효한 아이디어는이 아이디어를 사용하는 100 개 이상의 구성 요소를 제공하지만 한 번에 볼 수 있습니까?
이렇게하면 메모리 문제가 발생합니까? 구성 요소가 마운트 해제 될 때
imgNodes
가 가비지 수집 될 것으로 가정합니다.
우리는 그래서 가게에서 이러한 이미지를 절약 할 수 redux
를 사용하지만 캐싱을 처리하는 대신 브라우저의 자연 캐시를 활용하고 좋아하는 것 같다.
아이디어의 나쁜 점은 무엇입니까?
너는 이것으로 어디든 갔니? 관심있어 ... –
@MathieuK. 기본적으로 위에서 설명한 것과 동일한 구조/인터페이스를 사용하며 일반적인 HTTP 캐싱을 활용합니다. –
그래서 브라우저/HTTP의 기본 동작을 사용 하시겠습니까? –