Можно ли определить, открыта ли страница в 2 разных браузерах?
Я создал небольшое приложение, которое хранит некоторые данные в $ _SESSION, и проблема в том, что при открытии нескольких вкладок переменные сессии перезаписываются (поисковые фильтры в форме поиска), поэтому вкладки могут отображаться одинаково. результаты для явно разных поисков.
Основным браузером, используемым для этого приложения, является IE, поэтому для решения этой проблемы потребовалось некоторое время, и приложение стало больше и сложнее модифицировать.
Пока я не исправлю все ссылки на этот поиск, я бы хотел сделать "быстрое и грязное исправление" и запретить открывать две вкладки с одной и той же страницей или хотя бы отображать предупреждение.
редактирование:
@arjun: да, я знаю, но мне нужно восстановить фильтры поиска, когда пользователь вернется на страницу поиска :), так что $ SESSION - путь для этого. Кроме того, фильтры отправляются AJAX, и отладку сложно, когда у вас много фильтров (размер GET ограничен, поэтому я использую POST)
@ tomhaigh: спасибо ... но это то, что я пытаюсь сделать прямо сейчас, но это займет некоторое время, потому что эта «вещь» на вкладке влияет на все приложение, и мне нужно изменить фильтры во всех модулях. .. я искал что-то быстрое и грязное сейчас. Совет: я не хочу использовать time () и rand (), поскольку эти функции могут (и в конечном итоге будут генерировать) повторяющиеся числа. В новом «rewrite» я использую microtime из PHP и Date.getTime () в JS и объединяю theese 2 для создания действительно уникального идентификатора. Кроме того, я написал функцию для периодического разбора СЕССИИ и очистки сохраненных фильтров старше 2 часов, чтобы они не становились слишком большими.
@ Горток: я знаю ... но он был разработан с учетом IE6, и большинство пользователей (что-то вроде 90%) все еще используют IE6 при входе в это приложение ... поэтому я никогда не видел необходимости рассматривать несколько открытых вкладки.