UpdatePanel с кэшированием в браузере - PullRequest
1 голос
/ 13 января 2011

Недавно я узнал, что UpdatePanel использует HTTP-запросы с добавленным заголовком «no-cache». Это приводит к загрузке изображений внутри него при каждом обновлении UpdatePanel. Я не хочу это.

Так, как я могу предотвратить это?

Я думал о расширении элемента управления UpdatePanel и попытался удалить часть запросов без кэша, но, конечно, должно быть более элегантное решение.

Ответы [ 2 ]

1 голос
/ 13 января 2011

Замените содержимое панели вручную, используя jquery.Я сделал это совсем немного.Шаблон, который я обычно использую, использует пользовательский элемент управления, а затем захватывает текст, используя такой код:

var stringBuilder = new StringBuilder();
using (var tw = new TextWriter())
{
       var htmlWriter = new HtmlWriter(tw);

       userControl.RenderControl(htmlWriter);

       return stringBuilder.ToString();
}

. Это результат, который я возвращаю PageMethod , я устанавливаю HTMLв указанном div, и bang - все готово.

Как и многие другие вещи в разработке, вы в конечном итоге попадете в стену с помощью автоматизированных инструментов, и вам придется перейти на уровень абстракции, чтобы сделатьэто работает.Удачи!

0 голосов
/ 01 декабря 2011

UpdatePanel помещает заголовок no-cache только в свой собственный запрос на обновление, но не в запросы к другим ресурсам, таким как изображения.Они обрабатываются браузером как обычные запросы, даже если они находятся внутри содержимого UpdatePanel.
Возможно, вы просто забыли добавить заголовок Expires на изображение?

...