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

164
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
Ребят, помогите советом

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

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

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

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

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

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

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

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

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

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

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

219