2011-07-26 2 views
6

대부분의 브라우저는 캐시에서 페이지를 다시로드하고 왕복 서버 새로 고침을 수행하지 않습니다. Page_Load에는 Response.AppendHeader ("Cache-Control", "no-store")를 추가했지만 Chrome, Firefox, Safari에서는 작동하지 않습니다. 브라우저 (IE, Chrome, Firefox Safari)에서 뒤로 버튼을 눌렀을 때 페이지를 새로 고치는 방법은 무엇입니까?브라우저 (IE, Chrome, Firefox Safari)에서 뒤로 버튼을 눌렀을 때 페이지를 새로 고치는 방법은 무엇입니까?

답변

2

사용자가 새로 고침 한보기가 아닌 이전에 보았던 것을보고 싶어하기 때문에이 동작을 강제로 수행하는 것은 좋지 않은 생각 일 수 있습니다. 이것이 Chrome/Firefox/Safari의 동작이라면 브라우저를 선택했기 때문에 사용자가이 동작을 원할 것입니다. 원하는 경우 새로 고침 할 수 있습니다.

그렇긴해도 브라우저에서 Javascript를 사용하여이 작업을 수행하는 경우가 종종 있습니다. 페이지로드 이벤트에 연결하여 두 번째로로드되는 페이지가 표시되면 수동으로 새로 고침 할 수 있습니다. 그러나 클라이언트가 noscript를 사용하거나 Javascript를 지원하지 않으면 운이 없어집니다. 또한, 올바르게 다시로드하여 사용자가 뒤로를 클릭 할 때마다 새 페이지로 이동하지 않고 빠른 클릭 반사의 전투에서 멈추지 않게하십시오.

+0

나는 동의하지만, 일부 시나리오에서는 수동으로 페이지를 새로 고쳐야합니다. 그것은 웹 페이지의 비즈니스 논리에 달려 있습니다. 때로는 사용자가 뒤로 버튼을 누르면 업데이트 된 버전을 표시해야하는 데이터가 있습니다. – arlen

+0

문제의 해결책이되어야합니다. – arlen

5

이것은 내가 생각하고있는 C# 코드입니다. 다음은 내 제안 사항입니다.

Response.Cache.SetNoStore(); 

Response.Cache.SetCacheability(HttpCacheability.NoCache); 

Response.AppendHeader("pragma","no-cache"); 

Response.Cache.SetExpires(DateTime.Now.AddSeconds(-1)); 
관련 문제