2010-05-10 4 views
2

WPF 프레임 워크를 사용하여 C#으로 프로그램을 작성하고 있습니다. 이미지를 표시해야하며 이미지를 계속 다운로드하지 않도록 캐시하고 싶습니다.IE 캐시 작업

내 캐시를 코딩 할 수 있지만 IE에는 이미 캐싱 시스템이 있습니다. IE 캐시에서 항목을 읽는 코드를 찾을 수 있지만 항목을 캐시에 추가하는 문제는 발견하지 못했습니다. 그것을 할 수있는 좋은 방법이 있습니까, 아니면 그냥 별도의 캐시를 구현해야합니까?

답변

2

파일을 다운로드하는 방법에 따라 파일이 이미 캐시에 추가 될 수 있습니다. 지금 어떻게 다운로드하고 있습니까?

IE 캐시에 항목을 추가 할 수 있습니다. 기본적으로 두 가지 옵션을 사용할 수 있습니다. URLDownloadToCacheFile()은 좋은 "쉬운"단계로이를 수행합니다. CommitUrlCacheEntry()은 그것을하는 하드 코어 방법입니다. 필자가 사용한 샘플은 FindFirst/FindNextUrlCacheEntry()를 사용하여 캐시를 열거하고 CommitUrlCacheEntry()에 필요한 interop를 추가 할 수 있어야한다고 가정합니다.

그러나 전 IE 팀원으로서 Wininet 캐시를 사용하지 말 것을 권유 할 수는 없습니다. 그것은 신뢰할 수 없으며, 당신의 아래에서 제거 될 수 있고, 자주 손상되며, 저장할 수있는 물건의 수에 대해 몇 가지 어려운 제한이 있습니다. 이해할 수없는 다양한 규칙의 적용을받습니다. 그리고 그것은 최적화 될 것입니다. IE의 사용법이 아니라 당신의 사용법.

진지하게,하지 마세요. 캐시가 실제로 필요한 경우 직접 작성하십시오.

2

직접 구현하는 것이 좋습니다. 일관성을 유지하거나 사용자가 지우지 않는 IE 캐시 나 다른 어떤 것에 의존 할 수 없습니다. 실제로 앱의 컨트롤에 IE 브라우저를 내장하지 않는 한, IE 브라우저를 사용할 이유가 없습니다. 또한 자신의 캐시를 사용하여 목적에 더 적합 할 수있는 캐시를 만들 수 있습니다 (예 : 엄지 손가락이나 여분의 메타 데이터 또는 다른 것을 저장해야하는 경우).

+0

캐시가 많은 양의 디스크 공간을 차지하지 못하도록하거나 사용자가 캐시를 지울 수 있도록 조치를 취하십시오. –