2009-06-11 3 views
1

У меня есть приложение, которое подтягивает изображение для данного идентификатора пользователя. У меня есть тег изображения, вложенный внутри панели обновления в элементе управления AJAX TabContainer. У меня установлен ImageUrl на «~/ImageHandler.ashx», а ImageHandler.ashx захватывает идентификатор пользователя из переменной userID сеанса.AJAX HTTPHandler не обновляет изображение

Моя проблема заключается в следующем: при загрузке первого пользователя правильное изображение вытягивается, а последующие пользователи не подтягивают новое изображение. Изображение от первого пользователя остается. Поэтому кажется, что imageUrl устанавливается, когда первый пользователь загружен и не тронут снова. Как я могу получить изображение для обновления каждый раз, когда я подтягиваю нового пользователя?

+0

Это измененный пользователь в том же сеансе браузера? – RSolberg

ответ

2

Похоже, что ваш браузер кэшируется. Возможно, попробуйте установить ImageUrl в '~/ImageHandler.ashx? User = <% = userId%>' или что-то в этом роде. Я предполагаю, что ваш ImageHander.ashx проигнорирует этот аргумент, но браузер узнает, что URL-адрес отличается, и поэтому попытается извлечь его снова для каждого нового пользователя.

+0

Это сработало красиво. Я установил ImageUrl в код позади с указанным вами URL-адресом, и теперь он отлично работает! Спасибо огромное! – swolff1978

+0

спасибо @StriplingWarrior, я использовал технику, упомянутую вами, и она действительно работает. Большой!!!. –

0

Используйте FireBug, чтобы проверить, будет ли новое изображение запрашиваться. Если нет, убедитесь, что изображение, возвращенное ImageHandler.ashx, не кэшировано. Вы можете сделать это, посмотрев параметры заголовка в FireBug. Вы хотите, чтобы ответ истекал немедленно, а также убедитесь, что он не установлен в кеш.

Различные парадигмы программирования имеют разные способы настройки заголовка. Кроме того, проверяя сетевой трафик в FireBug, вы узнаете причину проблемы. Простым решением было предложено использовать параметры запроса, чтобы сделать каждый вызов уникальным.

0

Это очень помогло мне. У меня была такая же проблема. Я показывал изображение из mermorystream с сеанса U только что очистил кеш & Это сработало.

Смежные вопросы