ASP.NET @OuputCache Директива "Наследование" - PullRequest
1 голос
/ 14 мая 2010

Как я уже упоминал в предыдущем вопросе , у меня проблемы с производительностью веб-сайта ... Некоторые запросы SQL убивают сервер. Но, как упоминается в заголовке этого поста, я посмотрел на директиву страницы OutputCache, чтобы улучшить производительность сайта.

Хотя, я столкнулся с некоторыми вопросами относительно этой директивы: 1- Если у меня есть веб-пользовательский элемент управления, который объявляет директиву OuputCache на странице, которая тоже имеет такую, какая из них "победит"? 2. Какая самая лучшая практика в отношении продолжительности? Я бы тоже хотел иметь раздвижное окно.

Спасибо за вашу помощь и, пожалуйста, посетите http://www.developerit.com

Ответы [ 2 ]

1 голос
/ 24 июля 2010

По запросу, где ни один из них не кэшируется, будет создана страница и элемент управления, а затем добавлены в выходной кэш. Если страница кэшируется, элемент управления не будет создан, независимо от того, находится он в кэше или нет - его разметка содержится в кэшированной копии страницы. Если страница не кэширована, а элемент управления есть, на странице будет использоваться кэшированная разметка элемента управления.

0 голосов
/ 14 мая 2010

Вот хорошая статья о кешировании вывода: http://www.4guysfromrolla.com/articles/121306-1.aspx.

Обычно вы, похоже, смотрите на кэширование страниц и фрагментов. То, что вы хотите сделать, это кэшировать страницу, если вы можете, так как это даст вам лучший выигрыш в производительности. Но если у вас есть области на странице, которые должны динамически меняться для каждого пользователя, например: вы говорите «Привет, {имя пользователя}» в верхней части страницы, тогда вам нужно взглянуть на кэширование фрагментов.

Кэширование фрагментов не так эффективно, как кеширование страниц, поскольку выходные данные должны быть соединены вместе из кэшированной информации и динамической информации, но обычно она все же НАМНОГО лучше, чем НИКАКОЕ кэширование!

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

К вашему сведению - если запросы базы данных убивают сайт, вы можете также рассмотреть возможность укрощения их и / или кэширования их выходных данных по отдельности, чтобы вам не приходилось нажимать на базу данных для той же информации.

Также следует понимать, что 'varByParam' для кеширования также весьма полезен - скажем, у вас есть страница на 3 языках, вы можете кэшировать страницу для каждого языка с помощью varByParam, если ваш URL-адрес является языковым компонентом, VariveByParam может забрать.

НТН, Lance

...