2012-08-02 2 views
2

나는 다음과 같은 상황이 :레일 3 : 브라우저가 뒤로/앞으로 탐색시 캐시에서 페이지를로드하지 못하도록하려면 어떻게해야합니까?

페이지 A를 :/일/어떤 위로 게시물
새로운 : 지금까지 모든/일/편집

:/일 /가
페이지 B로 리디렉션 를 만들 공장. 자,/something/edit는 AJAX를 통해 많은 일들을 할 수있게 해주는 페이지입니다. 그래서 비어있는 상태로 시작합니다. 그리고 그것을 사용함에 따라 "풀러 (fuller)"가됩니다. 언제든지 다시로드하면 서버에서 렌더링 한 모든 것을 다시 얻을 수 있습니다.

그러나 리디렉션 된 후 페이지를 수정하면 뒤로와 다시 앞으로 이동하면 브라우저 (Chrome 이상)가 서버에 다시 도달하지 않습니다 (결과적으로 304, 아무것도), 그냥 ... 빈 나타나, 아주 혼란 ​​스러울 수 있습니다 캐시에서 페이지 B를로드

첫번째 렌더링 페이지 B는, 서버는 다음과 같은 헤더로 응답

:

Cache-Control:must-revalidate, private, max-age=0 
Connection:Keep-Alive 
Content-Length:18577 
Content-Type:text/html; charset=utf-8 
Date:Thu, 02 Aug 2012 20:19:59 GMT 
Server:WEBrick/1.3.1 (Ruby/1.9.3/2012-04-20) 
Set-Cookie: (redacted) 
X-Miniprofiler-Ids:["ma2x1rjc0kgrijiug5dj","nnmovj2wz1lux85jwhd3"] 
X-Request-Id:2dd3fa62799beadc1b39b8db1aa5f45f 
X-Runtime:0.245014 
X-Ua-Compatible:IE=Edge 

나는 Etag 또는 그와 비슷한 성가신 것을 볼 수 없다. 내가 제대로 (나는 매우하지만, 그것을 경험하고 있지 않다) "캐시 제어"를 해석하고있어 경우에도, 그것은

가 어떤인가 ... 지금 하지를 캐시 에 말하는 것 같다 이 동작을 피하고 브라우저가 Back/Forward에서 다시 서버에 도달하게하려면 어떻게해야합니까?

감사합니다.
다니엘

+0

자바 스크립트에서 새로 고침을 실행해야합니다. 최신 브라우저에서 방금 발생한 백 이벤트를 감지 할 수 있습니다. –

+0

@SamSaffron, 일반적으로 ... 뒤로를 누르면 브라우저는 어떻게 알 수 있습니까? 이미 캐시에 있거나 서버에 다시 도달해야하는지 여부 Rails에 도착하기 전에 만든 앱에서 항상 서버에 다시 닿습니다. 필자는 레일스를 사용하고 있기 때문에, 그렇지 않고, 지금까지는 괜찮습니다. 그러나이 특별한 경우에는 그렇지 않습니다. 그래서 어떻게 작동하는지 알고 싶습니다. 감사! –

+0

참조 : https://developer.mozilla.org/en-US/docs/DOM/window.onpopstate –

답변

관련 문제