2011-01-13 4 views
1

IE7에서도 모든 최신 브라우저에서 작동하는 javascript galleria가 있습니다. 그러나 IE8에서는로드가 .. 갤러리를 표시하지 않습니다.하지만 Ctrl + F5를 누르면 하드로드가되고 캐시가 지워지고 결국 갤러리가 나타납니다 .. 페이지를 다시로드하면 .. 또는 같은 갤러리아 스크립트를 사용하는 다른 페이지로 이동하면 문제가 다시 발생합니다. 따라서 IE8 용 하드로드 스크립트가 필요합니다.IE7은 잘하지만 IE8은 javascript 갤러리 스크립트를로드하지 않습니다 - 뭐가 잘못 됐나요?

의사 코드 :

On Document Load 

If user agent IE8 { 
erase website cache 
} 

do normally continue webpage loading.. 
+1

왜이 작업을 수행 하시겠습니까? 사용자 에이전트 스니핑은 거의 항상 잘못되었습니다. 실제로 어떤 문제를 해결하려고합니까? –

+0

IE7에서도 모든 최신 브라우저에서 작동하는 javascript galleria가 있습니다. 그러나 IE8에서는로드가 .. 갤러리를 표시하지 않습니다.하지만 Ctrl + F5를 누르면 하드로드가되고 캐시가 지워지고 결국 갤러리가 나타납니다 .. 페이지를 다시로드하면 .. 또는 같은 갤러리아 스크립트를 사용하는 다른 페이지로 이동하면 문제가 다시 발생합니다. 따라서 IE8 용 하드로드 스크립트가 필요합니다. – Tomkay

+1

과 (** 진짜 **) 문제에 대한 해결책을 묻지 않는 이유는 무엇입니까?! – ifaour

답변

3

문제는 클라이언트 측에 없습니다. 문제는 귀하의 서버입니다. 서버가 응답에 Cache-Control: no-cache을 설정하지 않는 한 IE는 AJAX 요청에 대한 응답을 적극적으로 캐시합니다. 서버가 현재와 현재가 아닌 것을 결정해야하기 때문에 브라우저에서 캐시를 지우는 것은 잘못된 수정입니다.

요청에 대한 서버 응답을 변경하여 올바른 헤더를 포함하십시오. 명확한 캐시가

"test.js?cacheBuster=" + new Date()) 

이 같은 페이지에서 자원을 모든 자원에 대한 캐시 버스터를 연결하는 것입니다 가짜에

+0

그런데 어떻게 브라우저 문제가 발생합니까? – ifaour

+0

@ifaour는 IE가 Firefox 나 Chrome이 아닌 Cache-Control 헤더를 제공하지 않는 경우 AJAX 요청을 캐시하기위한 다른 기본 정책을 가지고 있기 때문에. 사파리 또는 오페라에 대한 확신이 없습니다. –

-1

자바 스크립트를 사용하면이 작업을 수행 할 수 없습니다. 할 수있는 일은 서버 측 언어로 코드를 작성하여 전체 페이지가 캐시되지 않도록하는 것입니다.

0

한 가지 가능한 방법은 최후의 수단이어야한다.

관련 문제