사용자 정의 블로그 페이지가 있고 페이지 오른쪽에는 가장 인기있는 블로그를 보여주는 "패널"과 마지막으로 블로그에서 가장 많은 투표를 가진 사람들이 있습니다 주 3 다른 것들. 이 패널들은 모두 무겁다. 그들은로드하는 데 몇 초가 걸립니다. 여기 포스트 백에서 캐시 된 컨트롤을 피하십시오.
거친 레이아웃의 개요입니다 : 그들은 너무 자주 모든 변경에 바인딩되지 않기 때문에, 나는 webcontrols에 그들 모두를 격리 한 Balsamiq로 만든
모형 (의 .ascx global.asax
에 내가 내 사용자 지정 캐시 변수와 일치하는이있어
<%@ OutputCache Duration="7200" VaryByParam="*" VaryByCustom="CacheByModule" %>
그리고 :) 그들은 모두 출력 캐시를 :
나는 본질적 등 내 웹 사이트, 블로그, 설문 조사, 설문 조사, 퀴즈의 다른 부분에 대해 같은 일을하고 있어요public override string GetVaryByCustomString(HttpContext context, string custom)
{
switch (custom.ToLower())
{
case "cachebymodule":
Request.Url.PathAndQuery.Split('/')[0];
break;
}
return base.GetVaryByCustomString(context, custom);
}
..의
내가 처음으로 내 페이지를 실행, 모든 그들은 처형 당하고 있습니다. 다음 실행시 - 아무 것도 실행되지 않으며 예상됩니다.
이제는 이런 일이 발생합니다. 포스트 백 이벤트 인 블로그에 댓글을 달거나 답장을 보내고 댓글 섹션에 아약스 업데이트 패널을 사용하면 모든 오른쪽 사이드 패널이 실행 중입니다!
어떻게 알 수 있습니까? 글쎄, 내가 응용 프로그램을 디버깅 할 경우 중단 점이 응답 및 삭제 (다시 게시 이벤트)에 부딪치게됩니다. SQL 프로필러는 그만큼 두 번 확인을 보여줍니다.
이것은 예상되는 동작입니까? 그것들을 캐싱하는 전체 요점은 결코 실행되지 않습니다. 그러나 모든 응답과 삭제와 함께 그들은 실행되고 있습니다. 그들이 실행되지 않습니다 만 시간이 신선한 페이지로드에
그래서, 왜이 포스트 백에서 실행되고있는 (그리고 캐시 제한 시간 내에)인가? 어떻게 피할 수 있습니까? URL에 + PARAMS이 PageLoad/다시 게시에 대해 동일하지 않기 때문에
감사
오, 좋아, 지금을 시도하고 다시 비트 드릴 것입니다, 감사 – LocustHorde
아하 !!!! 그거였다! 내가 얼마나 행복한 지 말할 수 없다. 고마워. – LocustHorde
@LocustHorde 대단히 환영합니다. 나 자신과 같은 문제에 많은 시간을 할애해야합니다. – ntziolis