2009-03-22 1 views
2
protected void Page_Load(object sender, EventArgs e) 
{Label1.Text = DateTime.Now.ToString();} 

행동, 후 접수 페이지 에 표시되는 시간은 10.16이다. 10 초 후에 B1의 Cache.aspx를 새로 고침 ( 단추를 클릭하여 포스트 백이 발생), 10.16.30 시간이 표시되고 의 모든 후속 포스트 백 10.16.30이 항상 표시됩니다. 1 시간 경과). B1이 처음 Cache.aspx를 요청한 후 몇 분 후에 브라우저 B2도 이 동일한 페이지를 요청하면 첫 번째 시간의 페이지를 수신하면 B2의 Cache.aspx는 시간 10.16.20을 표시하고 모든 후속 B2의 포스트 백에는 이 표시됩니다 시간 10.16 : 30이 대신 표시됩니다.OutputCache를 내가 새로 만든 응용 프로그램을 컴파일 한 후, 브라우저 B1이 Cache.aspx를 요청 먼저 이며, 경우 이상하게

A) 그래서 Asp.net 따라서 코드를 두번 실행 Cache.aspx() 두 캐시 된 버전을 생성하는 표시는, 하나의 저장된 페이지는 처음 Cache.aspx 요청 브라우저 및 초 주어진다 캐시 된 페이지는 Cache.aspx 만 새로 고치는 브라우저에 제공됩니까?

B) 내 책에 이런 동작이 언급 된 적이 없기 때문에 이 동일한 동작을하는지, 아니면 내 네트워크 환경이 "고유"인지 다시 궁금해하십니까?

C), 따라서 두 번 코드를 실행 (같은 페이지를 2 부 작성) 시간 낭비처럼 보인다, 왜 Asp.Net 그런 식으로 작동 않습니다 - 은 그 뒤에 몇 가지 추론/혜택이 있어야한다? 은 "없음"키/값 쌍을 해제 없어도

은 아마도 ... 당신이

+0

관련된 모든 URL이 대소 문자를 구분하지 않습니까? – AnthonyWJones

+0

ASP.NET은 실제로 브라우저마다 다른 마크 업을 생성합니다. <% @ OutputCache VaryByParam = "none"%>에 영향을 주는지 확신 할 수 없습니다. –

+0

> 관련 URL이 모두 대소 문자를 구분하지 않습니까?다른 브라우저에 대한 내가 다른 하나 개의 브라우저에서 URL을 복사하기 때문에 예> ASP.NET 실제로 생성 않는 다른 마크 업 ... 나는 당신이 무슨 말을하는지 이해하지만, 내 모든 testings를에 파이어 폭스를 사용하지 않음 확인 – SourceC

답변

2

완전한 추측을 감사하지만, 아마도 캐시는 전체 요청 (쿼리 문자열 인수 등)에 의해 격리 "GET"은 여전히 ​​단순히 "POST"와 다른 것으로 간주됩니다 ???

ASP.NET 버튼 대신 간단한 링크 (<a href...> 등)를 사용해보십시오.

1

방금 ​​시도해 봤지만 마크의 직감이 맞는 것 같습니다. 캐시는 방법 (GET/POST)에 의존합니다.

그러나이 (ASP.NET 2 사용)과 같은 작은 데모를 기억하고 있으며 이것이 사용 된 방법이 아니라는 것을 확신합니다 ...
ASP.NET 3.5에서 변경된 사항 일 수 있습니다. 및/또는 SP1,하지만 그 언급을 찾을 수 없습니다.

내가 얼마나 나쁜지에 관해서는 완전히 확신 할 수는 없지만 나는 프로와 단점 모두를 생각할 수있다. (IsPostBack을) response.cache.setcachebility (NOCACHE) 끝

를 시작하면 내가 을 시도하는 경우

+0

내 Asp.Net에 고유하지 않기 때문에 기쁩니다. – SourceC

0

다음 버튼을 클릭 라벨마다 업데이트됩니다.

관련 문제