2013-06-11 5 views
0

내 프로그램 중 하나가 지정된 INTERNET_FLAG_RELOAD없이 InternetOpenURL을 사용합니다. 캐시에서 웹 페이지를 읽을 수 있습니다 (존재하는 경우). 나는 5 일 전에 웹 페이지를 변경했고, 캐시 된 버전을 얻었습니다 (위의 플래그를 지정하지 않으면). 누군가 캐시를 언제 업데이트 할 것인지 알고 있습니까? 결국 업데이트 될 것으로 예상됩니다 (지나치게 낙관적 인 경우도 있습니다)InternetOpenURL의 기본 캐시 새로 고침 시간은 얼마입니까?

답변

1

원래 자원의 유효 기한이 5 일 이상이기 때문에 캐시되지 않은 버전은 계속 사용됩니다. 잠시 후 InternetOpenURL()에게 서버를 다시 한 번 확인하십시오. 그러나 INTERNET_FLAG_RELOAD은 리소스가 실제로 수정되었는지 여부에 관계없이 리소스를 다시 다운로드하도록합니다. 그건 네가 필요로하는 너무 무식한 힘일거야. 대신 INTERNET_FLAG_RESYNCHRONIZE을 사용해보세요. 따라서 InternetOpenURL()은 리소스가 수정되었는지 확인한 다음 필요한 경우에만 다시 다운로드하고, 그렇지 않으면 캐시 된 복사본을 계속 사용합니다.

+0

감사합니다. 레미, RESYNCHRONIZE에 대한 메모를 보내 주시면 감사하겠습니다. 캐시 된 페이지의 만료 날짜를 결정하는 방법이 있습니까? 그것은 웹 서버에 의해 설정된 것입니까? 나는 수색했으나 그것에 관한 어떤 정보도 찾지 못했다. 기본적으로 나는 새 버전이 플래그가 설정되어 있지 않은 내 InternetOpenURL 호출을 가져올 지 알고 싶습니다. – MarkF

+0

캐시 관리 및 만료는 웹 서버에서 설정할 수 있습니다 (예). 공진 머리글을 확인하십시오. 결국 InternetOpenURL()은 원본 리소스를 다시 검사해야합니다. 잠시 후에 한 번만 강제 실행하는 것이 좋습니다. –

관련 문제