2014-01-28 4 views
2

다양한 jquery 히스토리 플러그인에 대한 조사를 해봤지만 내 상황에 대한 예제를 찾을 수 없으므로 내가하려고하는 것이 가능하지 않을 수도 있다고 생각하기 시작했습니다.브라우저의 뒤로 버튼을 클릭하면 Ajax 페이지로 돌아가서 똑같이 보입니까?

아약스로 업데이트하는 매우 복잡한 검색 페이지가 있습니다. 사용자는 다양한 옵션을 사용하여 검색하고 정렬 할 수있는 결과 목록을 반환합니다. 그런 다음 결과 중 하나를 클릭하면 다른 페이지로 이동하여 세부 정보를 볼 수 있습니다. 그러나 Back을 클릭하면 모든 Ajax 및 javascript 업데이트 후에 페이지가 어떻게 나타나는지 다시 돌아 오지 않습니다. 그들은 검색 결과가없는 검색 페이지를 봅니다.

가 돌아 가기를 클릭 할 때 그래서 나는 그것이 것, 비슷한 일을 달성하기 위해 JQuery와 역사 플러그인 중 하나를 사용하여 그들이 멀리 탐색하기 전에 내가 해시를 추가로 뭔가 당길 수 있다는 희망, 또는 한하지 RELOAD을 검색 페이지를 표시하지만 캐시 된 버전 (결과 중 하나를 클릭했을 때 마지막으로 보았던 방식)을 표시합니다.

아약스와 백 버튼에서 발견 된 대부분의 예제는 페이지를 어떻게 배열 할지를 알려주는 해시 값을 사용하며 해시가 포함 된 페이지를 북 마킹 할 수도 있습니다 . 나는 그것이 기본적으로 검색 페이지의 모든 내용을 해시 값으로 직렬화해야한다는 것을 의미한다고 생각하는데, 실제로 어떻게 작동하는지 완전히 오해하지 않는 한 실용적이지 않습니다.

가능하다면 누구도 알고 있습니까?

+0

아마도 히스토리 플러그인을 사용하고 있습니까? – mplungjan

+0

쿠키 사용을 고려 했습니까? http://stackoverflow.com/a/2257895/577264 – Lance

답변

4

당신이 원하는 것을 할 수 적어도 2 가지 방법이 있습니다

  1. "클래식"- "마지막 검색"과 같은 쿠키 나 세션의 모든 사용자 검색 옵션을 저장합니다. 따라서 사용자가 세션 중에 페이지를 탐색 할 때 쿠키/세션을 읽고 해당 옵션으로 마지막 검색 결과를 표시 할 수 있습니다.
  2. "현대적"방법 - 각 검색 양식에서 검색 옵션 개체를 사용하여 history.pushState를 통해 입력합니다 - 사용자가 다른 페이지로 이동 한 다음 "뒤로"를 누르면 브라우저는이 상태를 사용하여 검색을 수행합니다 .
+0

좋아, 이제는 페이지를 자동으로 표시하는 방법이있는 것처럼 보입니다. 어쨌든 사용자 JS가 페이지의 전체 상태를 일부 컨테이너에 저장 한 다음 사용자가 반환 할 때 페이지를 재구성해야합니까? – chrismay

+0

예, 브라우저 자체는 일반적인 URL과 달리 기록에서 아약스 요청을 "기억하지"않습니다. 사용자를 위해 여러 가지 방법으로 만 에뮬레이션 할 수 있습니다. –

0

체크 아웃 할 수 있습니다. SammyJS 이것은 아약스 기록에 사용한 플러그인입니다. 도움이 되었으면 좋겠다.

1

그게 복잡한 요소라면, 플러그인을 사용하지 않고 자신 만의 솔루션을 개발하는 것이 좋다. 사용자가 해시 값을 구문 분석 읽기 다시 역사를 탐색하면 그냥

를 쿼리 문자열 업데이트 해시를 제출 얻고 hash 값을 설정하고 모든 폼에 querystringinput1=a&input2=b

같은 해시 결국 폼 입력 요소와 그 값을 저장하는 location.hash를 사용 양식 필드를 업데이트하고 제출하면 자동으로 검색 결과를 얻을 수 있습니다.

관련 문제