2011-10-10 2 views
5

사용자가 작업을 수행 한 후 페이지의 요소를 수정하는 일부 jQuery가 있습니다. 이것들은 서버 측에서 계속 유지되므로 사용자에게 좋고 유동적입니다.오페라 백 버튼 캐시 기능

사용자가 오프 사이트를 클릭 한 다음 뒤로 버튼을 누르면 Opera를 제외한 모든 브라우저가 페이지를 다시 요청하므로 변경 사항이 계속 표시됩니다. 그러나 오페라를 사용하면 사이트가 pre-Jquery 상태 (서버에서 페이지를 요청하지 않았으므로)로 돌아갑니다.

브라우저를 확인하고 Opera가 새로 고쳐 지는지 확인하는 것처럼 좋지 않지만 분명히 이상적은 아닙니다.

이 문제를 해결하는 더 좋은 방법에 대한 아이디어가 있습니까?

+0

쿨! 오페라 사용자가 웹 개발자가 그것을 고려하는 것을 보는 것이 좋다 :) – alf

답변

0

단 한 내 자신의 질문에 대답하지만 다음을 표시하는 것은 내 문제를 해결 당신이 페이지를 떠날 때와 똑같은 상태였습니다. 이것은 기본적으로 제가 찾고 있던 것입니다. 다르게 행동하는 오페라 인 것처럼 보이지만 오페라 전용 설정 인 것으로 보입니다.

정보는 here입니다.

0

이러한 변경 사항을 클라이언트 사이드 (HTML5 호환 브라우저가있는 사용자의 경우)에 유지하고 그렇지 않은 서버 요청으로 정상적으로 저하 시키려면 일부 HTML5 로컬 스토리지를 사용할 수 있습니까?

주위를 빠르게 둘러 본 후 Opera가 Opera 10.5 (2010 년 초)에 LocalStorage를 지원하기 시작한 것으로 보입니다. 자동 업데이트라고 생각하기 때문에 Opera를 사용하는 대부분의 2.7 % 사용자는이 기능을 사용해야합니다. .

나는 기능의 존재를 확인하고 아마 객체 리터럴 JSON에 결과를 저장하기 위해 http://www.modernizr.com/을 사용하는 것이 좋습니다 것 로컬 저장소에 그 결과 (저장하고 쉽게 검색을해야한다!)

(HTML5 이 페이지 loade된다는 것을 의미합니다 설정

history.navigationMode = 'fast'; 

: - 로컬 저장소 가이드 http://php-html.net/tutorials/html5-local-storage-guide/)

0

오페라에는 페이지가 내비게이션 탐색에서 "재 초기화"가 필요한지 여부를 결정하는 몇 가지 경험적 방법이 있습니다. 휴리스틱 스는 페이지가 언로드 이벤트를 수신하는지 여부를 포함합니다 (언로드 이벤트가 수행 한 작업을 "실행 취소"할 수 없기 때문에). 또한 탐색을 유발하는 코드가 클릭 이벤트에서 실행되었는지 여부도 스크립트에 종종 표시됩니다. 페이지의 상태가 변경됨). 휴리스틱 스 (Keep It Simple)를 피할 수 있다면 history.navigationMode hack 없이도 문제는 사라져야합니다.