Как определить, открывает ли пользователь две вкладки в течение одного сеанса?

I ' Я сделал приложение для бронирования, созданное с помощью CakePHP, которое включает в себя несколько шагов до страницы оформления заказа. Между этими шагами я сохраняю информацию в сеансе.

Как это работает, Шаг 1 требует от них заполнить свою информацию. При переходе к шагу 2 информация из шага 1 будет сохранена в объекте сеанса. По мере выполнения остальных шагов процесс повторяется. В конце, когда они оформляют заказ, все данные затем сохраняются в базе данных.

Все работает отлично, если пользователь открывает один экземпляр приложения в браузере. Но как только они открывают другую страницу или другую вкладку для того же приложения в том же браузере, возникает проблема.

Допустим, у них есть два экземпляра приложения, открытые на вкладке A и вкладке B. На вкладке A они ввели данные в Шаг 1 и переходите к Шагу 2. Затем пользователь делает то же самое на вкладке B.

На последнем этапе, когда пользователь выполняет оформление заказа, информация на вкладке A такая же, как на вкладке B.

Сейчас я могу думать только наилучшим образом. заключается в том, чтобы запретить пользователю открывать одно и то же приложение в двух экземплярах браузера.

Есть ли способ обнаружить и предложить пользователю сначала заполнить форму бронирования на вкладке A, когда они попытаются открыть другой экземпляр на вкладке B?

18
задан darnpunk 7 April 2011 в 01:37
поделиться