Как можно записать информацию в cookie или localStorage только при загрузке страницы?

Как правильно ограничить запись в cookie или localStorage только при первом заходе на страницу, а не при ее обновлении? Необходимо реализовать счетчик, который учитывает, сколько раз посетитель заходил на сайт, и отобразить PopUp пользователям, которые посетили сайт определенное количество раз. Вот часть кода, которая увеличивает счетчик даже при обновлении страницы (и сразу увеличивает до 11 почему-то):
  • 26 апреля 2024 г. 12:30
Ответы на вопрос 3
Для записи информации в cookie или localStorage только при загрузке страницы можно воспользоваться условием, проверяющим, была ли уже установлена нужная информация. Например, для cookie:

```javascript
if(!document.cookie.includes("visited")) {
    document.cookie = "visited=true";
    // действия при первом заходе
}
```

Для localStorage:

```javascript
if(!localStorage.getItem("visited")) {
    localStorage.setItem("visited", "true");
    // действия при первом заходе
}
```

Чтобы ограничить запись в cookie или localStorage только при первом заходе, можно использовать проверку наличия нужной информации перед ее установкой, как показано выше.

Для создания счетчика, который учитывает количество посещений сайта, можно модифицировать код следующим образом:

```javascript
let count = parseInt(localStorage.getItem('visitCount')) || 0;

if(!document.cookie.includes("visited")) {
    count++;
    localStorage.setItem("visitCount", count.toString());
    document.cookie = "visited=true";

    if(count === 3) {
        // отобразить PopUp
        console.log("PopUp отобразить");
    }
}
```

В данном примере, переменная count хранит количество посещений сайта. При каждом посещении страницы проверяется, была ли уже установлена информация в cookie о посещении, и увеличивается счетчик. После трех посещений отображается PopUp.

Надеюсь, это поможет вам решить вашу задачу.
С точки зрения браузера открытие страницы ничем не отличается от её обновления.
Определите для себя критерии "зашёл на сайт" и используйте их. 
Но ничего лучше, чем "перестаём засчитывать заход на N минут после регистрации" придумать (и уж тем более реализовать), скорее всего, не выйдет.

Отделить само по себе открытие страницы от обновления нельзя document.referrer по F5 не меняется.
Похожие вопросы