4

У нас есть сайт (на самом деле конструктор приложений), вынесшим много пользовательских элементов управления в различных сценариях,Исключить динамического Rendered пользовательского элемента управления с выхода Caching

Однажды менеджер решил добавить Output cache на главной странице,

ОК, все в порядке, и запрос ответил очень быстро!

Но, с другой стороны этого кэширования есть некоторые проблемы:

Предположит, что мы имеем InsertForm User control, заполнившие некоторые объекты, и ListForm User Control, которые отображают список сущностей, поэтому вы можете догадаться, что произошло, объекты правильно заполнены, но не показано в списке, почему? из-за выхода кэширования.

Тогда мы должны исключить этот пользователь управляет от кэширования, после некоторого поиска мы находим Donut Caching, и, кажется, очень хорошо,

Мы используем Add dynamically server control to Substitution

Большинство пользователей управляет реализация зависит от всех жизненного цикла страницы, некоторые из них в Init, некоторые в нагрузки некоторые из них в рендера, поэтому в большинстве случаев мы имеем обойму место, что мы делаем:

enter image description here

enter image description here

И PreRender удалить все элементы управления из PlaceHolder для предотвращения дублирования:

enter image description here

в некоторых случаях мы имеем хороший результат, но в какой-то реализации мы снова неприятности , все Request заменены на HttpContext.Current.Request и все Session s преобразованы в поля, но в некоторых случаях, например, использование Wizard, мы все еще имеем exce ption: Request does not exist in this context. И в событиях привязки у нас снова возникают проблемы, события не связаны правильно, как при следующем нажатии кнопки мастера.

В конце концов я заполняю мы в неправильном направлении, может быть, это не практично в этом сценарии,

что вы думаете?

есть ли у нас другой вариант?

или все эти проблемы разрешимы? любое предложение, пожалуйста?

ответ

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

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