Когда кто-то посещает мой сайт, должна быть вызвана определенная функция javascript. Но когда они обновляют sh страницу или go на другую страницу, эта функция НЕ должна выполняться снова в течение как минимум 24 часов.
Даже когда веб-браузер закрыт и снова открыт, функция должна не будет выполняться, пока не пройдет 24 часа.
Итак, я подумал о функции Javascript или jQuery, которая записывает повар ie со значением метки времени при выполнении функции.
Но перед выполнением функции она должна проверить, есть ли повар. ie.
- Если его НЕТ, выполнить функцию.
- Если он есть , проверьте значение времени в повар ie и сравните его с текущим временем.
- Разница во времени составляет 24 часа или больше, затем выполните функцию. (и перезаписать значение времени готовки ie на следующие 24 часа)
- Разница во времени меньше 24 часов, НЕ выполняйте функцию.
Будет ли это правильный подход к достижению цели? Или есть встроенная функция, которая это делает? И не мог бы кто-нибудь помочь мне создать код javascript или jQuery для достижения этого?
Спасибо.
EDIT: Я нашел здесь следующий код: Выполнить код один раз в день :
<script type='text/javascript'>
function hasOneDayPassed() {
var date = new Date().toLocaleDateString();
if( localStorage.yourapp_date == date ) return false;
localStorage.yourapp_date = date;
return true;
}
function runOncePerDay() {
if( !hasOneDayPassed() ) return false;
alert("blabla");
}
runOncePerDay();
</script>
Пробовал. Значение даты хранится в локальном хранилище. Но каким-то образом функция (предупреждение для целей тестирования) все еще выполняется при закрытии и повторном открытии веб-браузера (пока значение локального хранилища все еще существует)