2011-08-05 2 views
5

자바 스크립트 및 많은 jax 호출을 사용하는 PHP 구동 애플리케이션이 있습니다. 내 응용 프로그램 파이어 폭스에서 날짜까지 최선을 다하고 있습니다. 하지만 인터넷 익스플로러 -8 또는 유사한 버전에서 실행할 때 내 아약스 호출을 내 브라우저에서 캐시 된 가져옵니다. 그래서 아약스 호출 날짜 정보를 출력 할 수 없습니다. 그 대신 아약스 호출에 대한 결과는 이전 데이터와 함께 제공됩니다 브라우저 캐시에 저장하십시오. 나는 PHP 코드javascript 또는 php를 사용하여 인터넷 익스플로러 캐시를 비활성화하는 방법

header('Cache-Control: no-cache, no-store, max-age=0, must-revalidate'); 
header('Expires: Mon, 26 Jul 1997 05:00:00 GMT'); // Date in the past 
header('Pragma: no-cache'); 

그러나 이후 추가 된

I have tried lots of possible options as listed below 

1.) I added following meta tag in header files 


<meta http-equiv='cache-control' content='no-cache'> 
<meta http-equiv='expires' content='0'> 
<meta http-equiv='pragma' content='no-cache'> 

2) 여전히 위의 두 방법은 인터넷 익스플로러 때 내 응용 프로그램이 실행 캐싱을 해제하는 즉, 누군가가 나를 도울 수 제발 내 문제가 해결되지 않았다, 그래서 날짜 정보를 얻을 수 있습니다. 사전

+0

HTTP 헤더가있는 두 번째 솔루션이 효과적입니다. 헤더가 실제로 보내지는지 확인하고 (web-sniffer.net 사용), 브라우저의 캐시를 지우십시오 (헤더가 전송되지 않을 때 파일이 캐시되었을 것입니다). 그리고 다시 한번 확인하십시오. – duri

+0

* 내가 추가 한 PHP 코드 * - 어떤 파일에? 응답 헤더는 AJAX 스크립트에 있어야합니다. –

+0

@ duri 항목이 이미 캐시에있는 경우 해당 솔루션이 작동한다고 생각하지 않습니다. 난 당신이 하드 새로 고침을 사용하여 자바 스크립트 => http://stackoverflow.com/questions/2099201/javascript-hard-refresh-of-current-page/2099205#2099205 수있을 것 같아요. Filemtime()과 같은 것을 사용하여 버전을 업그레이드해야한다고 생각하는 나머지 항목 – Alfred

답변

8

에서

덕분에 어떤 식 으로든 각 AJAX 요청이 독특합니다. 그러면 IE가 응답을 캐싱하지 않습니다.

www.mysite.com : 일반 AJAX 쿼리 URL이 www.mysite.com/ajax.php?dog=cat 인 경우

예를 들어, 고유 각 AJAX 요청에 쿼리 문자열 매개 변수에 추가 /ajax.php?dog=cat & queryid = 1

AJAX 요청을 할 때마다 해당 매개 변수를 증가시켜야하며, 트릭을 수행해야합니다.

+0

멋진 의사 코드'dog = cat'; p –

+0

나중에 각 초마다 현재 시간을 추가하여 각 Ajax 요청을 수행했지만 모든 제 파일에 대한 일반적인 해결책을 얻으려면 더 나은 방법을 찾고 있으며 모든 요청은 누구나 할 수 있습니다. 도와주세요. –

+1

'url + "& rand ="+ Math.floor (Math.random() * 11)' –

관련 문제