Oposum
@Oposum

Как задать временной интервал, по окончанию которого, можно будет нажать кнопку и перейти дальше?

Суть проблемы такова:
Есть кнопка, по которой, новый пользователь переходит на страницу "Прохождение опроса". После перехода и ответов, возврат и изменения на этой странице возможны лишь, через определенное время после предыдущих ответов на странице.
Например, я нажал кнопку "Продолжить", перешел на страницу "Анкета", заполнил ее и меня перенаправило на другую страницу. Теперь страницу "Анкета" я смогу увидеть, и изменить что-либо, лишь через 1 час с момента предыдущего заполнения Анкеты.
Собственно вопрос - Как задать время и каким методом?
Заранее благодарен за ответ и потраченное время на меня.
  • Вопрос задан
  • 42 просмотра
Решения вопроса 1
khegay
@khegay
Founder, Garuna
1 метод (такой себе):
Использовать localStorage или sessionStorage, хранить в нем переменную с datetime и внутри приложения проверять эту переменную, например при нажатии на кнопку.

2 метод (тоже так себе):
Нужно хранить в базе данных, на сервере, datetime и добавить воркера, который будет сравнивать время и добавить вебхук - который будет высылать изменения в приложение.

Опять же, это методы избыточны. Если пользователь может изменять анкету только в сессии, проще всего хранить локально переменную и подвесить ивент.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
Xuxicheta
@Xuxicheta Куратор тега Angular
инженер

Например, я нажал кнопку "Продолжить", перешел на страницу "Анкета", заполнил ее и меня перенаправило на другую страницу.

Вы же отправляете на бэк какие-то данные, по заполненной анкете например?
Добавьте туда время заполнения.

Теперь страницу "Анкета" я смогу увидеть, и изменить что-либо, лишь через 1 час

А при открытии анкеты заново, наверно получаете с бэка данные по заполненной анкете.
Вместе с ними получите время и выставляйте часы, т.е. setTimeout или timer на вот это время заполнения плюс один час, таймер сработал, можно снимать дизейбл с кнопки.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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