LocalStorage всегда будет храниться в браузере, если он не будет очищен вручную. Однако во многих случаях нам может потребоваться срок действия localStorage. Например, если мы сохраним токен аутентификации пользователя на клиенте, он будет действителен в течение 1 недели. , а если оно превышает одну неделю, войдите снова, то как реализовать это требование?
Вы должны знать, что localStorage сам по себе не предоставляет механизма истечения срока действия. В этом случае мы можем реализовать его только самостоятельно. Мы можем напрямую добавить такой метод в его прототип.
Storage.prototype.setExpire=(key,value,expire) =>{ };Storage.setExpire(key,value,expire);Чтобы истечь, время должно быть записано. Наша идея состоит в том, чтобы записать текущее время при установке значения, а затем при получении значения определить, находится ли разница между текущим временем и предыдущим временем в определенном диапазоне. вне диапазона, очистите текущий элемент и вернет ноль.
Чтобы добавить время к значению, необходимо определить формат.
Storage.prototype.setExpire=(ключ, значение, срок действия) =>{ let obj={ data:value, time:Date.now(), expire:localStorage.setItem(key,JSON.stringify(obj)) ;}Включает следующие 3 поля
Поскольку значение, установленное localStorage, не может быть объектом, здесь используется метод JSON.stringify для преобразования его в строку, и при использовании его необходимо преобразовать обратно.
Затем мы добавляем метод для получения
Storage.prototype.getExpire= key =>{ let val =localStorage.getItem(key); if(!val){ return val; } val =JSON.parse(val); if(Date.now()-val.time); > val.expire) { localStorage.removeItem (ключ); вернуть ноль } вернуть val.data;}Мы можем сначала проверить это
localStorage.setExpire(token,'xxxxxx',5000);window.setInterval(()=>{ console.log(localStorage.getExpire(token));},1000)По сути, наша идея состоит не в том, чтобы регулярно очищать элементы с истекшим сроком годности, а в том, чтобы определить, истек ли срок их действия, когда они получены, а затем очистить элементы, если срок их годности истек.
Выше приведено все содержание этой статьи. Я надеюсь, что она будет полезна для изучения всеми. Я также надеюсь, что все поддержат сеть VeVb Wulin.