Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   как засечь повторное открытие страницы? (https://javascript.ru/forum/events/61929-kak-zasech-povtornoe-otkrytie-stranicy.html)

greenwar 16.03.2016 11:59

как засечь повторное открытие страницы?
 
уважаемые, можно как-то засечь, что открывается дубль страницы, т.е. чтобы нельзя было 2 одинаковых страниц держать открытыми, либо предупреждать, что открыта вторая-дубль?

Dilettante_Pro 16.03.2016 12:19

greenwar,
На сервере в php getenv('REMOTE_ADDR'); - дает ip клиента. Но для определения, есть ли дубль, необходимо хранить ip клиентов и как-то определять, закрыт ли предыдущий сеанс

greenwar 16.03.2016 12:32

php тут не поможет, он не умеет с браузером контачить
JS надо, я думал про его window-ы или ещё как-то
чтобы вкладки ловить и проверять, что такое же окно, с таким же идентификатором, не открыто в соседней вкладке

Dilettante_Pro 16.03.2016 12:51

greenwar,
А если я открыл второе окно в другом браузере (у меня установлено 4)

Deff 16.03.2016 13:07

greenwar,
Кидать отрытую ссылку в список в sesionStorage, при открытии новой страницы сверять с массивом уже вписанных ссылок

greenwar 16.03.2016 13:12

Цитата:

Сообщение от Deff (Сообщение 411134)
greenwar,
Кидать отрытую ссылку в список в sesionStorage, при открытии новой страницы сверять с массивом уже вписанных ссылок

ok, а если просто перезагрузит страницу по F5?
как именно зафиксировать факт наличия 2х одновременно открытых?

Deff 16.03.2016 13:19

greenwar,
В хидере или в начале body ставите скрипт проверки наличия и добавки ссылки(если отсутствует) в ячейку (списком, к примеру через запятую, хеши обрубаете) sesionStorage
Хоть по F5, хоть как - скрипт сработает

greenwar 16.03.2016 13:23

не, я к тому, что по F5 получится же ложное срабатывание?
он же просто проверит, что такая ссылка уже есть в базе
при этом страница таже самая, а не дубль

Deff 16.03.2016 13:30

greenwar,
Тогда вам нужно удаление ссылки из списка при закрытии страницы, по идее и по F5 наверно есть событие onunload предыдущей страницы (ну или нун подумать, пока нет мыслей)

Dilettante_Pro 16.03.2016 13:53

SessionStorage хранит данные для текущего окна. Это значит, что если вы закрыли окно, то все текущие данные, хранящиесе в SessionStorage теряются, даже если у вас открыто несколько окон с данным сайтом


Часовой пояс GMT +3, время: 17:30.