У меня есть страница с блогами, а в правой части страницы у меня есть панель, в которой отображаются самые популярные блоги, а другая - люди с большинством голосов в своих блогах в последних неделю и три других таких веща. Эти панели все тяжелые sql; они занимают пару секунд, чтобы загрузить.Избегайте кешированных контролей, выполняемых при обратной передаче
здесь грубый обзор макета:
макеты создан с Balsamiq
Поскольку они не обязаны менять так часто, я их все изолированный в WebControls (.ascx), и все они имеют кэш вывода:
<%@ OutputCache Duration="7200" VaryByParam="*" VaryByCustom="CacheByModule" %>
и в global.asax
я получил это, чтобы соответствовать моей пользовательской переменной кэша :
public override string GetVaryByCustomString(HttpContext context, string custom)
{
switch (custom.ToLower())
{
case "cachebymodule":
Request.Url.PathAndQuery.Split('/')[0];
break;
}
return base.GetVaryByCustomString(context, custom);
}
Я по сути делает то же самое для различных частей моего сайта, блоги, опросы, опросы, викторины и т.д ..
Когда я запускаю мою страницу в первый раз, все они выполняются - что ожидается. В следующем прогоне ни один из них не выполняется, что также ожидается.
Теперь это случается каждый раз. Когда я комментирую или отвечаю в блоге, который является событием обратной связи, и я использую панель обновления ajax для раздела комментариев, все мои правые боковые панели исполняются!
Как узнать это? хорошо, если я отлаживаю приложение, точки останова в них ударяются для ответа и удаления (события обратной передачи). SQL Profiler показывает столько же, что и в два раза больше подтверждения.
Является ли это ожидаемым поведением? Весь смысл их кеширования заключается в том, что они никогда не исполняются .. и все же, с каждым ответом и удалением они выполняются. Только время, когда они не выполняются, находится на новой загрузке страницы (и в пределах тайм-тайма)
Итак, почему это выполняется на обратной стороне? и как я могу избежать этого, пожалуйста?
Благодаря
О, ладно, попробуем это сейчас и вернемся немного, спасибо – LocustHorde
Ага !!!! Вот и все! Я не могу сказать, насколько я счастлив, спасибо! – LocustHorde
@LocustHorde Вы очень желанны, проводите много времени с такими проблемами – ntziolis