프로젝트 진행중에 jQuery의 $.get 메소를 사용하여 데이터를 가져오는 로직이 추가되었다.
해당 처리부분을 테스트중에 한가지 이슈가 생겻다..
$.get 메소를 사용하여 데이터를 가져올때 계속 새로운 데이터를 가져오지 않고 브라우져의 캐쉬데이터를 사용하고 있더라.;;
해당 브라우져는 IE8.0이였으면 파폭에서 테스트했을경우 정상적으로 데이터를 가져오는 현상발생.;;
처음엔 jQuery의 $.get 메소드에 혹시 초기값을 셋팅을 해줘야하는게 있는줄알앗다.;;
확인결과 IE의 고질적인 브라우져 캐쉬버그(?)로 상당히 오랜전에 나왔던 이슈였던걸 이제야 내가 경험을 하게 됏다.-_-;..
jQuery의 $.get메소드 문제가 아니였으니 해결책은 몇가지 방법이 있었다.(jQuery 기준;;)
1. 파라미터값에 불특정값을 추가하여 매번 request를 날리게 한다..
var params = {
tsTimeStamp = new Date().getTime();
}
$("test.jsp", params, function (returnData){
alert(returnData);
});
위와 같이하면 new Date()가 항상 다른 값이 나와 test.jsp호출시 매번 서버에 request를 날리게 된다.
2. $.post를 사용하라..
사실 get과 post의 사용용도가 차이가 있다. get는 주로 일반적인 데이터 조회용이고 post는 데이터의 조작을 위할때 사용한다.
어쨋든 post는 IE에서도 캐쉬를 사용하지 않으니 $.post를 사용하면 된다.
3. $.ajax 메소드의 cache : false 를 사용하라.
$.get 이나 $.post의 경우 사용자의 편의를 위해 이미 기본셋팅이 된상태로서 사용자는 기본설정값만으로 사용되어진다.
하지만 좀더 디테일하게 ajax를 사용하고자할려면 $.ajax를 사용 해당 설정값중에 cache 값에 false를 주면 된다..
참고 : [http://www.sitecrafting.com/blog/ajax-ie-caching-issues/]
'jQuery' 카테고리의 다른 글
$.getJSON을 post 방식으로 사용하기. (0) | 2010.11.28 |
---|---|
jQuery 1.4 버젼업~! (0) | 2010.02.04 |
jQuery의 live() 함수. (0) | 2009.08.30 |
jQuery 성능 조정 (0) | 2009.08.14 |
jQuery $.getJSON 사용한 동적 SELECTBOX구현 (0) | 2009.05.03 |