js에서 IE 캐시 방법 자동 지우기— 일반적으로 사용됨
index.asp?id=... 또는 index.aspx?id=...와 같은 동적 파일의 경우 경험이 있다고 믿습니다. 프로그램 브라우저의 데이터 캐싱을 방지하는 방법은 누구나 알고 있습니다.
그러나 정적 파일(css, jpg, gif 등)의 경우 어떤 상황에서 브라우저의 캐싱을 금지해야 하며 어떻게 해야 할까요? >
방법 1:
Dojo에서 간단한 방법을 사용하여 완료할 수 있습니다. PreventCache 속성은 dojo.xhrGet(post 포함)에 포함되어 있으며 이 속성의 의미는 다음과 같습니다. 브라우저 캐시는 기본적으로 활성화되어 있으며, 그렇지 않으면 전달됩니다. 브라우저 캐시 무효화를 보장하기 위해 다른 매개변수를 자동으로 추가합니다." 이 속성을 "true"로 할당하기만 하면 됩니다. 방법 2:
document.write(" ver=113의 113은 버전 번호로, 일반적으로 CVS나 기타 도구에서 생성된 개발 버전 번호입니다.
캐시해야 할 정적 파일을 실제로 캐시하고, 버전이 업데이트되면 최신 버전을 가져오고, 캐시를
이미지에 맞게 업데이트하여
js를 효과적으로 활용하고 업데이트합니다. 브라우저 캐시 지우기 2
브라우저와 서버 사이의 네트워크 전송 부담을 줄이기 위해 js, css, 수정된 사진 등의 정적 파일이 캐시되는 경우가 많습니다. 이러한 파일은 응답 헤더에 Expires 및 Cache-Control 매개 변수를 추가하고 캐시 시간을 지정하여 서버가 서버에 오류가 있는 경우에도 브라우저가 특정 기간 내에 서버에 HTTP 요청(강제 새로 고침 제외)을 보내지 않도록 합니다. 이 기간 동안 파일이 여러 번 업데이트되었지만 브라우저의 데이터는 여전히 초기에 캐시될 수 있는 오래된 데이터입니다. 브라우저가 최신 수정된 데이터를 얻을 수 있는 방법이 있습니까?
예, 방법은 ajax를 사용하여 서버에서 최신 파일을 요청하고 요청 헤더 If-Modified-Since 및 Cache-Control을 다음과 같이 추가하는 것입니다.
$.ajax({
type: "GET",
url: "static/cache.js",
dataType: "text",
beforeSend :function(xmlHttp){
xmlHttp.setRequestHeader("If-Modified-Since","0"); xmlHttp.setRequestHeader("Cache-Control","no-cache");
}
})
여기에서는 jquery가 사용됩니다. 이런 식으로 브라우저는 이전 로컬 파일을 최신 파일로 대체합니다. 물론 여기서 또 다른 문제는 js가 서버에 의해 업데이트된 js, css 및 그림을 알아야 한다는 것입니다. 이는 쿠키 및 시간 버전을 사용하여 해결할 수 있습니다. .
jquery에는 1.2부터 ifModified 및 캐시 매개변수가 있으므로 직접 추가할 필요가 없습니다. 헤더
ifModified Boolean 기본값: false
다음 경우에만 요청이 성공하도록 허용합니다. 마지막 요청 이후 응답이 변경되었습니다. 기본값은 false이며 헤더를 무시합니다.
cache Boolean 기본값: true
false로 설정된 경우 jQuery 1.2에 추가되었습니다.
코드 복사
cache:false,
ifModified :true
})