여러 라우터에서 구성 명령의 실행을 실행하는 응용 프로그램을 작성하고 있습니다. 여기 는이 설계 방법은 다음과 같습니다여러 브라우저 탭과 PHP가있는 "뒤로"버튼
Page 1 Page 2 Page 3
+--------+ +--------+ +--------+
| data | PRG | data | PRG | steps |
| enter |------->| review |------->| exec |---+
| page | | page | | page | |
+--------+ +--------+ +--------+ | Ajax
^ |
| |
+--------+
- 사용자는 첫 번째 페이지에있는 양식을 채 웁니다.
- 시스템은 더 많은 데이터를 가져 와서 두 번째 페이지의 다른 형식으로 검토를 위해 표시합니다.
- 구성 단계는 Ajax 요청을 사용하여 세 번째 페이지에서 실행됩니다.
나는 uniqid()를 통해 ID를 생성하고 양식의 숨겨진 요소에 넣어 여러 브라우저 탭/창을 처리합니다. 각 탭/창에 대한 데이터는 $_SESSION[$ID]
에 저장됩니다. Post-Redirect-Get은 귀찮은 양식의 재 제출을 없애는 데 사용됩니다.
사용자가 브라우저에서 '뒤로'버튼을 누르면 새 ID가 생성됩니다. 이로 인해 $_SESSION
과 웹 양식이 동기화되지 않습니다. 나는 끈적한 양식을 사용하여 응용 프로그램이 마법사처럼 작동하도록 할 계획 이었지만 탭/창 존재 기간 동안 ID가 동일하게 유지되어야합니다.
"뒤로"버튼을 클릭하면 새 탭이 열리는 것을 어떻게 구별 할 수 있습니까?
감사합니다! PN
. 페이지를 떠날 때 "언로드"이벤트를 감지하는 방법이 있지만 표준화되거나 신뢰할 수 없습니다. –
OK, 그게 :) 신뢰성이 중요하기 때문에. 아마 그것을 생각하고 그 요구 사항을 제거하는 더 나은 디자인을 생각 해낼 필요가 있습니다. 고맙습니다! – pn8830
당신은 엄청나게 큰 필드 나 매우 큰 데이터를 가지고 있지 않다면 숨겨진 양식 필드는 서버 측 동기화 없이도 특정 탭/창에 데이터를 묶을 것입니다. –