2011-12-01 1 views
0

jQuery를 :Ajax의 jQuery Cache 매개 변수 - 캐시 된 데이터는 어디에 저장됩니까?

*cacheBoolean 
Default: true, false for dataType 'script' and 'jsonp' 
If set to false, it will force requested pages not to be cached by the browser. 
Setting cache to false also appends a query string parameter, "_=[TIMESTAMP]", to the URL.* 

내 질문 : 브라우저캐시

???

내가 나를 반환하는 ASHX 처리기가있는 경우 :

'<div>lalala</div>' 

이이 브라우저의 임시 인터넷 파일에 저장됩니다?

난 그렇게 생각하지 말아

....

그래서 그것을 저장 않는 경우?

답변

1

jQuery 자체는 AJAX 응답의 캐싱을 수행하지 않습니다. cache: false 설정은 요청 된 URL에 타임 스탬프를 추가하여 브라우저가 브라우저 캐시를 무시하도록하는 역할을합니다.

$.ajax('/ajax_handler.php', { cache: false }); 

/ajax_handler.php?_=1323308900002에 대한 요구가 발생합니다 : 실행 예를 들어

.

모든 후속 요청에는 마지막에 새로운 타임 스탬프가 포함되므로 브라우저가 파일의 캐시 된 버전을 무시하고 새 복사본을 요청하게됩니다.

그래서 모든 설정 cache: true *이 브라우저가 보통 때와 같이 파일을 캐시 할 수 있도록 하지 APPEND이 캐시 무효화 타임 스탬프 (어쨌든 현재의 디폴트)에 jQuery를 지시입니다 않습니다.

요약 : 모든 캐싱은 일반적인 브라우저 캐싱 일 뿐이며 파일은 저장되지만 브라우저는 일반적으로 캐시를 저장합니다.

* "평소대로"라는 말은 이 아니며 파일을 캐싱한다는 것을 의미합니다. jQuery는 캐싱을 보장하기 위해 아무 것도하지 않는다. 브라우저에 달려있다. 페이지가 certain Cache-control or pragma headers을 전송하면 단순히 캐싱되지 않습니다. 논리적으로 jQuery가 cache의 반대 인 "cacheBust"설정을 갖는 것이 더 합리적입니다. jQuery가 할 수있는 일은 캐싱을 방지하기위한 시도이기 때문입니다.

0

"브라우저에 의해 캐시 됨"은 브라우저 (IE가 다른 것보다 ...)가 동일한 호출을 두 번 가로채는 경우 절대 서버를 호출하지 않고 서버가 마지막으로 반환 한 값을 반환한다는 것을 의미합니다. 그러나 캐시를 지우면 사라집니다.

+0

질문 : '어디에 저장합니까?' –

+0

브라우저에 따라 달라 지므로 등등 생각합니다. 예를 들어 Windows 7에서 IE9를 저장하면 C : \ Users \ youruser \ AppData \ Roaming \ Microsoft \ Internet Explorer \ UserData에 저장됩니다. –