2010-02-02 2 views
0

페이지가 동일한 탭/창에 의해로드되는 것을 추적하는 데 허용되는 패턴이 있습니까?브라우저 탭/창 추적 패턴?

단계별 제출 프로세스와 같은 특정 프로세스가 있으며, 이는 동일한 탭에서 실행을 요청하는지 확인하는 기능을 크게 활용할 수 있습니다.

예를 들어, 우리가 Memcache의 중간 데이터를 저장하는 (단계들 사이)에 대한 존재하지만,이 범위에 능력이없는 문제를 야기 할 수있는 사용자는 다른 탭을 열면 반대로 데이터이 공정/동일한 프로세스의 창.

이것은 많은 작업/프로세스에 적용됩니다.

일부 브레인 스토밍에는 신뢰할 수있는 것이 없습니다.

아이디어 누구?

답변

1

쿼리 매개 변수 (GET 요청을 사용하는 경우) 또는 숨김 필드 (POST 요청을 사용하는 경우) 또는 둘 모두를 사용하여 다중 단계 프로세스의 상태를 유지 관리 할 수 ​​있습니다 (POST-와 - 리디렉션하면 사용자 그녀의 브라우저를 새로 고침).

서버에서 상태를 유지하는 경우 (예 : DB 또는 memcached) 쿼리 매개 변수 또는 숨겨진 필드에 "트랜잭션 키"를 유지할 수 있습니다.

내 경험에 비추어 볼 때 이러한 상태 기반 다단계 프로세스를 상당히 깨끗하게 설계 할 수는 있지만 구현하기가 쉽지 않으며 사용자 경험이 놀라 울 정도로 유지 될 수 있습니다. 예를 들어 스테이지간에 앞뒤로 움직일 때 어떤 일이 발생합니까? 이것을 명시 적으로 허용하거나 사용자가 뒤로 버튼을 사용할 수 있지만 프로세스가 여전히 유효해야합니다.

편집 :

  1. 사용자는 "여러 단계의 프로세스를 시작합니다"를 클릭, 서버에
  2. 서버 다음
    • 을 게시물을 수행합니다 구체적인 예를 들어

      프로세스의 상태를 초기화합니다.

    • 고유 키 "A"를 부여합니다.
    • 은 임시 저장소 (예 :memcached와는)
    • 는에 "/ 프로세스/A/단계/1"
  3. 이 프로세스의 다음 단계는 "/ 프로세스/A/단계/2"
  4. 사용자 될 것을 사용자에게 리다이렉트 다른 탭을 클릭 "여러 단계의 프로세스를 시작합니다"다시
  5. 서버는 동일하지만
    • 는 고유 키 "B"
    • 가 "/ 프로세스/B/스텝/1"
    리디렉션을 사용을한다
  6. 이 두번째 프로세스의 다음 단계는 "/ 프로세스/B/단계/2"
  7. 두 프로세스 지금이 독립 서버 측이 아직 복사 방지 않을
+0

상태/붙여 URI가 될 창 사이. 그러나 이는 받아 들일만한 위험 일 수 있습니다. 그것이 발견 될 수 있다면 적어도 사용자에게 경고 할 수 있습니다. 고유 한 탭 ID를 창 객체에 표시하는 브라우저는 좋을 것입니다. :) 코멘트 주셔서 감사. – Spot