문제

모든 사이트 캐시를 지울 수 있습니까? 사용자가 로그 아웃하거나 세션이 각 요청에 따라 캐시하지 말라고 지시하는 대신 만료되는 경우이 작업을 수행하고 싶습니다.

도움이 되었습니까?

해결책

내가 아는 한, 브라우저에 사이트를 위해 캐시 된 모든 페이지를 지우도록 지시 할 방법은 없습니다. 웹 사이트 저자로서 귀하가 브라우저가 해당 페이지에 액세스하려고 할 때 페이지를 과도하게 캐싱하는 유일한 컨트롤은 발생합니다. 캐시 된 버전의 페이지가 특정 시간에 만료되어야합니다. Expires 헤더이지만 그때도 브라우저는 실제로 캐시에서 페이지를 지우지 않습니다.

다른 팁

나는 확실히 희망하지 않습니다 - 그것은 웹 사이트에 클라이언트 기계를 통해 파괴적인 힘을 줄 것입니다!

여기에서 보안이 주요 관심사 인 경우 HTTPS를 사용하지 않는 이유는 무엇입니까? 브라우저는 HTTPS를 통해 수신 된 콘텐츠를 캐시하지 않습니다 (또는 메모리에서만 캐시).

모방하는 한 가지 까다로운 방법은 사이트의 정적 컨텐츠를 참조 할 때 세션 ID를 매개 변수로 포함시키는 것입니다. 사용자가 세션을 설정하면 브라우저는이 매개 변수를 포함하여 모든 컨텐츠를 새로운 것으로 인식합니다. 세션 기간 동안 브라우저는 캐시에 정적 컨텐츠를 사용합니다. 사용자가 로그 아웃하고 다시 로그인 한 후에는 정적 내용의 세션 ID 매개 변수가 다르므로 브라우저는 이것이 완전히 새로운 컨텐츠임을 인식하고 모든 것을 다시 다운로드 할 것입니다.

즉, 이것은 해킹이고 나는 그것을 추구하는 것이 좋지 않을 것입니다. 현재 요구하는 것과는 달리 상황에 맞는 더 나은 솔루션이있을 것입니다.

ASP.NET 캐시 개체에 대해 이야기하는 경우 다음을 사용할 수 있습니다.

    For Each elem As DictionaryEntry In Cache
      Cache.Remove(elem.Key)
    Next            

캐시에서 항목을 제거하려면 이는 성취하려는 내용의 전체 텍스트가 아닐 수도 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top