Как сделать такую проверку на JS?

157
04 января 2022, 19:50

Есть функция которая выполняется при загрузке страницы( всех страниц сайтов) Если пользователь перезагружает страницу или переходит со страницы на страницу то скрипт выполняется. Как сделать что бы скрипт выполнялся лишь тогда когда пользователь открывает браузер. Т.е если он закрыл браузер и снова зайдет - скрипт выполниться, если же он перейдет на другую страницу либо же обновит текущею - скрипт не должен выполняться

Answer 1

События "открытия браузера" не существует, но можно попробовать реализовать проверку через установку флага в сессионных куках (когда параметры Expires и Max-age не указаны в куке, она называется session cookie, так как живет только до закрытия браузера).

Хоть браузеры и могут применять восстановление сессий (делая их "вечными"), более надежного способа вроде нет.
Так что, в качестве подстраховки, желательно явно сбрасывать такой флаг в куках (по какому-либо другому условию), если есть такая возможность.

MDN: document.cookie:

If neither expires nor max-age specified it will expire at the end of session.

When user privacy is a concern, It is important that any web app implementation will invalidate cookie data after a certain timeout and won't rely on the browser clearing session cookies
One of the most beloved features of Firefox prevents session cookies from ever expiring.
The same issue is also occuring with google chrome (and probably with other browsers offering similar features)


p.s.: А sessionStorage не подходит, так как оно воспринимает новой сессией открытие новой вкладки / нового окна с тем же сайтом :(

READ ALSO
Ребят, помогите советом

Ребят, помогите советом

Проблема в следующем: в одном разделе сайта мне нужно скрывать/показывать определенные блоки, сохранять работу таймера и тд

98
Столкновение объектов js

Столкновение объектов js

Пишу простенькую игру на jsОсталась финальная точка, написать if где будет сказано, что при соприкосновении объектов будет уходить hp, только...

121
Подскажите, что не так с кодом

Подскажите, что не так с кодом

Вот собственно код и вопрос к нему:

164
Telegram bot Node.js c интерфейсом

Telegram bot Node.js c интерфейсом

я делаю бота на NODEjs, хочу сделать интерфейс и отправлять сообщения с сайта

209