2009-06-11 9 views
1

주어진 사용자 ID의 이미지를 가져 오는 앱이 있습니다. AJAX TabContainer 컨트롤의 업데이트 패널 안에 이미지 태그가 중첩되어 있습니다. 나는 ImageUrl을 "~/ImageHandler.ashx"로 설정하고 ImageHandler.ashx는 사용자 ID를 세션 변수 userID에서 가져온다.AJAX HTTPHandler가 이미지를 업데이트하지 않습니다.

제 문제는 다음과 같습니다. 첫 번째 사용자가로드되면 올바른 이미지가 표시되지만 이후 사용자는 새 이미지를 가져 오지 않습니다. 첫 번째 사용자의 이미지가 그대로 유지됩니다. 따라서 첫 번째 사용자가로드되어 다시 접촉되지 않을 때 imageUrl이 설정된 것처럼 보입니다. 새 사용자를 끌어 올 때마다 이미지를 업데이트하려면 어떻게해야합니까?

+0

동일한 브라우저 세션에서 변경된 사용자입니까? – RSolberg

답변

2

브라우저가 캐싱하는 것처럼 들립니다. 아마도 ImageUrl을 '~/ImageHandler.ashx? user = < % = userId %>'또는 이와 비슷한 것으로 설정하십시오. 귀하의 ImageHander.ashx가 인수를 무시할 것이라고 가정하지만, 브라우저는 URL이 다르다는 것을 인식하고 따라서 새로운 각 사용자에 대해 다시 가져 오기를 시도합니다.

+0

그것은 아름답게 작동했습니다. 나는 당신이 제안한 URL로 코드 뒤에 ImageUrl을 설정하고 완벽하게 작동합니다! 정말 고맙습니다! – swolff1978

+0

감사합니다 @ StriplingWarrior, 내가 당신에 의해 언급 된 기술을 사용하고 그것이 정말로 작동합니다. 큰!!!. –

0

요청할 경우 FireBug를 사용하여 새 이미지가 있는지 확인하십시오. 그렇지 않은 경우 ImageHandler.ashx에서 반환 한 이미지가 캐시되지 않도록하십시오. FireBug의 헤더 매개 변수를 보면됩니다. 응답이 즉시 만료되도록하거나 아니면 캐시가 설정되지 않도록합니다.

다른 프로그래밍 패러다임에는 헤더를 설정하는 여러 가지 방법이 있습니다. 또한 FireBug에서 인터넷 트래픽을 검사하면 문제의 원인을 알 수 있습니다. 쿼리 매개 변수를 사용하여 각 호출을 고유하게 만드는 간단한 솔루션이 이미 제안되었습니다.

0

많은 도움이되었습니다. 동일한 문제가 발생했습니다. 세션에서 mermorystream의 이미지를 표시했습니다. U 캐시를 지우고 &이 작동했습니다.

관련 문제