2009-07-22 5 views
0

으로 돌아가는 페이지가 다시로드되는지 확인합니다. 뒤로 버튼을 누르면 실제로 페이지가 다시로드되지 않고 그냥 저장된 사본을 사용합니다. 누군가가 이것을 할 때 페이지가 다시로드되도록하려면 어떻게해야합니까? 당신이 asp.net 세계에있는 경우적어도 크롬에서

답변

2

PHP에서 당신은이 작업을 수행 할 것입니다 : 그들은 모두 궁극적으로 클라이언트에 HTTP를 통해 가서

header('Expires: Mon, 20 Dec 1998 01:00:00 GMT'); 
header('Last-Modified: ' . gmdate('D, d M Y H:i:s') . ' GMT'); 
header('Cache-Control: no-cache, must-revalidate'); 
header('Pragma: no-cache'); 

그러나, 전송 헤더의 이름은 서버 측 프로그래밍 언어에 대해 동일합니다.

각각에 대한 정보는 위키 피 디아의 List of HTTP Headers을 참조하십시오.

0

나는 당신이 필요합니다 모든이를 Page_Load에서

Response.Cache.SetCacheability(HttpCacheability.NoCache) 

이라고 생각

2

나는 그것을 시도하지 않은,하지만 당신이를 보내려고 수 파일과 함께 Cache-Control HTTP 헤더. PHP의 예를 들면 다음과 같습니다

header('Cache-Control: no-cache,no-store,max-age=0'); 

이 (길을 따라와 캐시) 귀하의 브라우저를 말할 것이다 어떤 상황에서이 파일을 캐시 할 수 없습니다. 그러나 뒤로 단추를 클릭 할 때 이전 파일을 전달하는 것은 반드시 캐싱으로 간주되지 않으므로 이러한 헤더를 무시할 수 있습니다.

정말로 뒤로 버튼을 피하려면 Javascript로 시도하십시오. 저는이 접근법을 정말로 추천하지 않습니다 - 당신은 왜 물러서서 이것을해야하는지에 대해 생각해야합니다. 당신의 HTML 본문에이 코드처럼 그것은 말했다 뭔가 작업을해야합니다 :

<input type="hidden" id="back_button" value="0" /> 
<script> 
var bb = document.getElementById('back_button'); 
if (bb.value !== '0') { 
    location.href = location.href + '?rand=' + parseInt(Math.random()*9999); 
} 
bb.value = '1'; 
</script> 

이 현재 페이지를 열 수 있지만 캐시를 체포하기 위해 추가 된 '랜드'쿼리 문자열 매개 변수를 사용합니다.

관련 문제