서버에서 이미지가 업데이트 된 경우 페이지에 이미지를 다시로드하고 싶습니다. other questions에서는 이미지를 다시로드 할 강제로자바 스크립트로 이미지 새로 고침 (서버에서 변경 한 경우에만)
newImage.src = "http://localhost/image.jpg?" + new Date().getTime();
처럼 뭔가를 제안되었다,하지만 그것이 정말 이이 변경되지 않은 경우에도 다시 다운로드받을 것을 의미합니다.
If-Modified-Since
헤더와 함께 동일한 이미지가 생성되도록 요청하는 Javascript 코드가 있습니까? 이미지가 실제로 변경된 경우에만 다운로드됩니다.
업데이트 : 여전히 혼란 스럽습니다. 일반적인 URL 만 요청하면 로컬 캐시 된 사본이 생성됩니다. (서버가 캐시 할 수 없도록 표시하지 않는 한, 실제로 변경되지 않는 한 전체 아이디어는 다시 다운로드하지 않기 때문에 그렇게하지 않으려 고합니다.) URL을 변경하면 이 항상이됩니다. 새 URL의 요점은 캐시를 깨뜨리는 것이기 때문에 다시 다운로드하십시오. 그렇다면 내가 원하는 중간 동작을 얻는 방법, 즉 로컬 캐시 된 복사본과 일치하지 않는 경우에만 파일을 다운로드하려면 어떻게해야합니까?
서버가 올바르게 구성되어 있으면 (예 : Etag/Last-Modified를 지원하는 경우) 클라이언트/프록시/캐시 계층은 서버가 전송 한 내용을 준수해야합니다. – jldupont
이 댓글의 의미가 확실하지 않습니다. 원래 이미지 URL로 src를 다시 설정하고 마지막에 여분의 가짜 타임 스탬프를 추가하지 않으면 이미지를 새로 고쳐야하는 서버가 올바르게 구성되어 있다고 말하는 것입니까? –
서버가 올바르게 구성된 경우 클라이언트가 "If-Modified-Since"헤더가있는 자원을 요청하면 서버는 "304"상태 코드로 응답합니다. 즉, 클라이언트가 "If-Modified-Since"헤더로 요청하는 것만으로는 충분하지 않습니다. 서버는 공을 너무 재생해야합니다. – jldupont