2011-10-25 3 views
2

으로 다시로드하면 자바 스크립트를 사용하여 캐시 된 특정 이미지를 다시로드 할 수 있습니까?캐시 된 이미지를 자바 스크립트

내 사이트에서 사용자는 새로운 아바타를 업로드 할 수 있습니다. 이 작업이 끝나면 브라우저에서 새 아바타를 다시 다운로드하여 사용자가 변경 사항을 확인할 수있게합니다. 순간

, 나는 이런 식으로 일을 해요 :

$('profilePic').src = 'flash/userImage.ashx?id=12345677&type=avatar&t=' + new Date().getTime() 

userImage.ashx는 ID와 쿼리 유형에 따라 이미지를 반환합니다. 't'매개 변수를 사용하지 않습니다. 이것은 URL이 다르므로 이미지가 다시로드됩니다.

사용자가 새 아바타를 업로드하는 페이지에서 제대로 작동하지만 사이트의 다른 곳에서도 캐시 된 이미지를 계속 사용합니다.

사용자 아바타에 대한 캐싱을 해제 할 수는 있지만 실제로는 원하지 않습니다. 특정 캐시 된 이미지를 강제로 다시로드 할 수 있습니까?

답변

3

아마의 ETag로 캐싱 솔루션입니다 : 다른 사용자가 아바타 업데이트 후 페이지를로드 http://en.wikipedia.org/wiki/HTTP_ETag

, 그는 이미지에 대한 요청을 보내는의 ETag가있는 ETag 서버에서 생성 된 것과 다른이며, 따라서 304 대신 200 응답을 가져와야하므로 이미지가 다시로드됩니다.

관련 문제