asp.net 앱에서 캐시 된 항목으로 돌아가는 사용자를 처리하는 가장 좋은 방법은 무엇입니까? 뒤로 단추 (이벤트?)를 캡처하고 캐시를 그런 식으로 처리하는 좋은 방법이 있습니까?캐시와 브라우저의 뒤로 가기 버튼을 다루는 가장 좋은 방법은 무엇입니까?
답변
이 도움이 될 경우 당신은 HttpResponse.Cache property를 사용하여 시도 할 수 있습니다 :
Response.Cache.SetExpires(DateTime.Now.AddSeconds(60));
Response.Cache.SetCacheability(HttpCacheability.Public);
Response.Cache.SetValidUntilExpires(false);
Response.Cache.VaryByParams["Category"] = true;
if (Response.Cache.VaryByParams["Category"])
{
//...
}
또는 HttpResponse.CacheControl으로 모두 페이지 캐싱을 차단할 수 수 있지만, 그 위 캐시 속성에서 사용되지 않기 :
Response.CacheControl = "No-Cache";
편집 : 손으로 모든 것을 할 정말 go nuts하고 또는 당신이 수 :
Response.ClearHeaders();
Response.AppendHeader("Cache-Control", "no-cache"); //HTTP 1.1
Response.AppendHeader("Cache-Control", "private"); // HTTP 1.1
Response.AppendHeader("Cache-Control", "no-store"); // HTTP 1.1
Response.AppendHeader("Cache-Control", "must-revalidate"); // HTTP 1.1
Response.AppendHeader("Cache-Control", "max-stale=0"); // HTTP 1.1
Response.AppendHeader("Cache-Control", "post-check=0"); // HTTP 1.1
Response.AppendHeader("Cache-Control", "pre-check=0"); // HTTP 1.1
Response.AppendHeader("Pragma", "no-cache"); // HTTP 1.1
Response.AppendHeader("Keep-Alive", "timeout=3, max=993"); // HTTP 1.1
Response.AppendHeader("Expires", "Mon, 26 Jul 1997 05:00:00 GMT"); // HTTP 1.1
가장 좋은 방법은 아마도 ASP.NET 페이지 (또는 마스터 페이지를 사용하고 있다면 마스터 페이지)에 no-cache 지시문을 넣는 것입니다. 나는 ASP.NET 코드에서 이것을 직접적으로 처리 할 방법이 없다고 생각합니다 (클라이언트에서 캐시 결정이 일어나기 때문에).
MVC의 경우 어떻게 수행 할 것인지 모르겠다 (Web Forms 기반 ASP.NET과 다른 것으로 가정). 나는 그것을 사용하지 않았다.
나는
건축가가 귀하의 응용 프로그램이 아무튼 그래서 (또는 적어도 읽고) "페이지에서"사용자 이벤트에 대한 응답으로 일을하지 않으려 고, 오히려 생각하기 위해 최선입니다 .. 알고 지금까지로 뒤로 단추가 눌려지면 신경 쓰지 않아도됩니다 .. 이것은 개발의 관점에서 약간의 추가 작업을 의미 할 수도 있지만 전반적으로 응용 프로그램을 더욱 강력하게 만듭니다.
3 단계에서 일부 데이터 chages를 수행하면 사용자가 2 단계로 돌아가서 다음을 다시 클릭하면 응용 프로그램이 변경 사항이 있는지 확인합니다. 이상적으로는 을 변경하지 마십시오. 사용자가 마지막에 "확인"을 클릭 할 때까지. 이렇게하면 모든 변경 사항이 저장되고로드 할 때마다 이전에 입력 한 값을 기반으로 양식을 다시 채울 수 있습니다.
나는이 정보가 의미있는 바를 희망합니다.)
-1 실용적인 답변보다 이상적인 답변입니다. 일부 응용 프로그램은 처음부터 특별한 방법으로 설계되었습니다. 예산이 부족한 대규모 팀에서 작업 할 경우 비즈니스 이해 관계자에게 명백한 이익을주지 않고 자원을 싱크하여 아키텍처를 변경하는 것이 매우 어렵습니다. 게다가이 질문에 정말로 대답하지 않습니다. –
RFC 2616 §13.13이 역사와 캐시가 다른 것을이 있다고 말한다. 캐시가 뒤로 버튼에 영향을 미치지 않아야합니다.
HTTP 헤더의 조합이 뒤로 버튼에 영향을주는 경우 브라우저의 버그입니다. 단 한 가지 예외가 있습니다.
HTTP에서 S 브라우저는 뒤로 버튼을 사용할 때 페이지를 새로 고치라는 요청으로 Cache-control: must-revalidate
을 해석합니다 (모질라는 "바보 같은 뱅크 모드"라고합니다). 이것은 일반 HTTP에서는 지원되지 않습니다.
다음 코드는 IE9 +, FF21과 최신 크롬에 나를 위해 일한 :
Response.Cache.SetCacheability(HttpCacheability.NoCache | HttpCacheability.Private);
Response.Cache.AppendCacheExtension("must-revalidate");
Response.Cache.AppendCacheExtension("max-age=0");
Response.Cache.SetNoStore();
앱에서 모든 페이지가에 왕복이 필요 있도록
당신은 MasterPage에서 Page_Load()
이벤트 처리기에서이 작업을 배치 할 수 있습니다 서버를 다시 시작합니다.
- 1. navigationcontroller의 뒤로 버튼을 iPhone의 브라우저의 뒤로 버튼으로 변환하는 방법은 무엇입니까?
- 2. github에서 암호를 다루는 가장 좋은 방법은 무엇입니까?
- 3. SQLite 데이터베이스를 다루는 가장 좋은 방법은 무엇입니까?
- 4. JavaScript를 사용하여 브라우저의 뒤로 버튼을 비활성화하는 방법
- 5. 브라우저의 뒤로 버튼을 클릭하면 특정 페이지로 리디렉션됩니다.
- 6. winforms 웹 브라우저의 마우스 앞으로/뒤로 바로 가기
- 7. 이전 활동이 뒤로 가기 버튼을 누르지 않습니다.
- 8. Struts 1은 브라우저의 뒤로 가기 버튼으로 사용자에게 친숙하지 않습니다.
- 9. 양식 데이터를 남기기위한 뒤로 가기 버튼
- 10. 컨트롤러 이름 변경을 다루는 가장 좋은 방법
- 11. 장고 모델 객체를 다루는 가장 좋은 방법은 무엇입니까?
- 12. 개체를 그리고 그 개체를 다루는 가장 좋은 방법은 무엇입니까?
- 13. 여러 대의 모니터를 다루는 가장 좋은 방법은 무엇입니까?
- 14. 페이지의 일반적인 "구조적"요소를 다루는 가장 좋은 방법은 무엇입니까?
- 15. 암호 및 구성 파일을 다루는 가장 좋은 방법은 무엇입니까?
- 16. 뒤로 가기 버튼
- 17. 브라우저의 뒤로 및 앞으로 단추
- 18. ASP.NET/jQuery 포스트 백, 브라우저의 "뒤로"버튼을 사용하지 않을 때
- 19. 브라우저의 뒤로 버튼
- 20. 탐색 앱에서 뒤로 버튼을 표시하는 방법은 무엇입니까?
- 21. 뒤로 버튼을 전체적으로 사용자 정의하는 방법은 무엇입니까?
- 22. iPhone 앱의 탐색 바에 뒤로 버튼을 구현하는 가장 좋은 방법은 무엇입니까
- 23. 입력 유형 - 뒤로 버튼?
- 24. 이미지로 돌아 가기 및 뒤로
- 25. 브라우저의 뒤로 버튼을 클릭 할 때 세션을 가져올 수 없습니다.
- 26. 브라우저의 뒤로 버튼을 클릭하면 동적 웹 사용자 제어 문제가 발생합니다.
- 27. 브라우저의 뒤로 버튼을 지원하기 위해 asp.Net 응용 프로그램을 사용하고 싶습니다.
- 28. 어떻게하면 브라우저의 뒤로 버튼을 클릭하면 같은 페이지를 얻을 수 있습니까?
- 29. 홈 페이지로 리디렉션하기 위해 브라우저의 뒤로 버튼을 사용해야합니다.
- 30. 브라우저의 뒤로 버튼을 클릭 1 회 이상으로 되돌려 놓으십시오.
http : // stackoverflow를 참조하십시오.co.kr/questions/20088616/browser-back-button-the-page-from-cache –