그것은 가능한 유지(를 다시 로드할 필요 없이)AJAX 페이지 상태에서 다시 버튼을 클릭?

StackOverflow https://stackoverflow.com/questions/34227

  •  09-06-2019
  •  | 
  •  

문제

나는 익숙한 여러 가지 방법을 만들기 버튼을 다시 작품에서 AJAX 응용 프로그램에 다양한 상황에서 그러나 나는 발견되지 않았는 솔루션이 정상적으로 작업 내에서 특정 시나리오이다.

페이지가 있는 검색 인터페이스 사이트입니다.를 입력 약관에서 정상의 검색 상자에"을 클릭하고 바람에서 검색 검색결과 페이지로 이동합니다.에서 검색결과 페이지의 톤이있다 UI 컨트롤에 대한 필터링 정렬 검색 결과를 찾을 수 있습니다.의 일부 작업을 트리거하여 이러한 컨트롤을 걸릴 수 있습니다(상대적으로)를 완료하는 데 시간이 오래(예:여러 초)입니다.

이 지연은 미세한 경우에는 사용자가 처음 필터링/분류 결과를...거기에 좋은 아약스 회다.그러나 클릭할 때는 검색결과와 다음에 클릭하시 버튼이 나는 것 같은 페이지를 즉시 회복될 상태에 있었을 때 클릭을 통해.

나는 복원 할 수 있습니다 미국을 사용하여 Iframe/조각 식별자를 사전으로 페이지의 역사,하지만 일어나고 끝나는 경우 사용자는 먼저 안타 버튼을 다시 초기 페이지를 로드 그것은(재)은 AJAX 를 쿼리 페이지를 받는 상태에 다시 트리거 AJAX 스피너 및 다른 기다리의 가능한 여러 초입니다.

이 있 접근 방식이 필요하지 않은 이런 종류의 두 단계로드 페이지의할 때 사용자가 페이지 통해 뒤로 버튼?

편집을 추가합니다:나는 부분을 jquery 하지만 난 행복할 것으로 솔루션에 따라 달라지는 기타 라이브러리/툴킷 또는 독립형/원 javascript.

편집을 추가합니다:나에 추가하려고 하는 피 쿠키/세션이기 때문에 이렇게 하면 사람들은 여러 브라우저 윈도우/의 탭을 열고 조작하는 다른 세트의 검색 결과 같은 시간에.

편집:트 수에 정교한 제안하는 솔루션(트리거 페이지 변경 이벤트를 통해 조각 식별자)?나는 어떻게 도움이 될과 뒤로 버튼을 클릭에서는 동일한 페이지로 돌아가지 않을 검색 결과 페이지를 클릭한 후에서 특정 결과입니다.

도움이 되었습니까?

해결책

을 사용하려고 로컬 저장소 체입니다.여기에는 crossbrower libs jStorageWEBSHIMS json-스토리지

다른 팁

그냥 사용 쿠키.

그것은 도움을 트리거하는 페이지가 변경 이벤트를 사용하여"추가 정보를#끝에서의 URL 접근 방법".

는 방법을 클릭하면 버튼을 다시지 않이 실제로 변경 페이지로,당신이 할 수 있어야 복원 주지 않고 첫 번째 페이지의 짐입니다.

뭔가를 사용하여 지속적인 연결된 사용자의 프로필입니다.

쿠키고 세션은 좋은 아이디어를,그러나 유지할 수 있습니다 또한 그 데이터베이스에서.제공하는 당신에게 추가할 수 있다는 장점을 저장하는 사용자의 필터링 환경설정에 걸쳐 다른 탐색 세션이 있습니다.(는 경우,대한 exampple,그는 뭔가를 찾고 있는 사무실에서 다음 계속하기로 결정을 찾을 때,그는 집에서).

모든 것의 복잡성에 따라 달라집 및 여과 날씨는지 그것을 당신이 뭔가를 생각하는 사용자가 사용하고 싶을 것이 걸쳐 다른 탐색 세션..

편집을 추가합니다:나도 추가 난을 피하려고 쿠키/세션 기 때문에 이를 방지 하는 사람들 여러 브라우저 윈도우/의 탭을 열고 조작이의 다른 세트를 검색 결과에서 동일한 시간입니다.

을 만들 수 있습니다 임의의 토큰 및 할당을 조각 식별자입니다.

  • 첫 번째 페이지에 로드 토큰을 만들지 않으면 조각 식별자 설정
  • 앞에서 이동하고,저장의 모든 임시 ajax 데이터에서는 쿠키와 함께하는 토큰으로 인덱스입니다.
  • 을 공격할 때 다시는 경우,당신은 조각 식별자 설정 데이터를 로드하에서 해당하는 토큰에서는 쿠키입니다.
  • 에 추가할 수도 있습니"시간"필드를 만료 토큰,etc....

샘플 쿠키(JSON):

{"ajaxcache":[{"token":<token>,"time":<time>,"data":<data>}, ... ]}
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top