@levysh

Как изменить значение переменных в БД при закрытии страницы или перехода с нее?

Пишу сайт на фрейме yii2. Понадобилось сделать монопольный доступ к странице редактирования формы update. Для этого использую две переменные edit_on и editor, первая булевая (1 - доступ разрешен, 0 - занят) и во вторую заношу id пользователя, который редактирует, чтобы показывать его другим. При сохранении формы возвращаю edit_on 1 и очищаю editor. Однако нужно отследить, когда пользователь уходит со страницы, не сохранив форму. Была идея отправлять ajax запросы на сервер с обновлением переменной last_update каждые 30 секунд, но это будет загружать сервер. Поэтому появилась другая идея: отследить момент закрытия страницы, и во время него отправить запрос на обновление этих двух переменных.

В js я новичок, поэтому не понимаю, как именно написать часть скрипта, отвечающую за обновление двух переменных в БД. И подходит ли .bind или лучше добавить новый слушатель?

$(window).bind('beforeunload',function(event){/*тут запись переменных*/});
  • Вопрос задан
  • 92 просмотра
Решения вопроса 1
@levysh Автор вопроса
Для отслеживания закрытия страницы и перехода в ней на другой URL использую функцию .sendBeacon: https://developer.mozilla.org/ru/docs/Web/API/Navi....
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
no_one_safe
@no_one_safe
Для данной задачи могут подойти веб сокеты. Как только клиент отваливается - значит покинул страницу, идём в базу и пишем нужное значение.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы