Ajax 와 IE6 캐 시 문제 해결 방안

1571 단어 Ajax
(옮 겨 싣 기 http://wgllz.iteye.com/blog/1341445   -wgllz)
IE6 에서 수정 전의 값 을 표시 합 니 다.그러나 다른 브 라 우 저 와 IE7, IE8 에 서 는 이 문제 가 없다. 이유: ajax 로 요청 할 때 중복 되 는 URL 이 나타 나 면 브 라 우 저 는 서버 에 요청 을 보 내지 않 고 이전 과 같은 URL 요청 결과 에 따라 되 돌려 줍 니 다.그 이 유 는 이전의 요청 과 결과 가 저장 되 어 있 기 때문이다. 캐 시 에서 같은 URL 을 만 났 을 때 결 과 는 캐 시 에서 직접 가 져 옵 니 다.
 
해결 방법: 1. IE6 의 도구 - internet 옵션 - internet 임시 파일 - 설정 - 웹 페이지 의 새로운 버 전 검사 - 이 페이지 에 방문 할 때마다 검사 하도록 설정 합 니 다. 2. IE 에서 ajax 데 이 터 를 보 낼 때 무 작위 시간 스탬프 를 보 냅 니 다.즉, 요청 할 때마다 URL 이 다 르 게 하면 됩 니 다. 예 를 들 어 요청 할 때마다 URL 에 시간의 밀리초 나 난수 (new Date (). getTime () 또는 Math. Random () 를 추가 하면 됩 니 다. )。 또한 인터넷 에는 많은 해결 방법 이 있다. 1. 보 내기 전에 추가 XMLHttpRequest.setRequestHeader("If-Modified-Since","0") 혹은 post 방법 으로 제출 2. 서버 측 에서 캐 시 를 사용 하지 않 습 니 다 (서버 측 캐 시 만 금지 되 어 있 을 뿐 ajax 캐 시 를 금지 할 수 없습니다) 
response.setHeader("Pragma","No-cache"); 
response.setHeader("Cache-Control","no-cache"); 
response.setDateHeader("Expires", 0);

 위 에서 말 한 것 은 모두 맞 지만, 더 간단 한 방법 은 ajax 가 요청 할 때 캐 시 를 false 로 설정 하 는 것 입 니 다.
 
$.ajax({

url: 'tStrategyBase.do?method=checkStrategyStates&id='+id,

cache:false,

dataType: 'html',

success: function(data){

 ...

}

})


 
cache: 캐 시 여 부 는 URL 에 무 작위 수 를 추가 하 는 것 입 니 다.

좋은 웹페이지 즐겨찾기