LocalStorage sera toujours stocké dans le navigateur à moins qu'il ne soit effacé manuellement. Cependant, dans de nombreux cas, nous pouvons avoir besoin que localStorage ait un délai d'expiration. Par exemple, si nous enregistrons le jeton d'authentification utilisateur sur le client, il sera valide dans un délai d'une semaine. , et si cela dépasse une semaine, connectez-vous à nouveau, alors comment réaliser cette exigence ?
Il faut savoir que localStorage lui-même ne fournit pas de mécanisme d'expiration. Dans ce cas, nous ne pouvons l'implémenter que nous-mêmes. Nous pouvons directement ajouter une telle méthode à son prototype.
Storage.prototype.setExpire=(clé,valeur,expire) =>{ };Storage.setExpire(clé,valeur,expire);
Pour expirer, l'heure doit être enregistrée. Notre idée est d'enregistrer l'heure actuelle lors du réglage de la valeur, puis lors de l'obtention de la valeur, de juger si la différence entre l'heure actuelle et l'heure précédente se situe dans une certaine plage. en dehors de la plage, effacez l'élément actuel et renvoie null.
Pour ajouter du temps à une valeur, un format doit être défini
Storage.prototype.setExpire=(clé, valeur, expire) =>{ let obj={ data:value, time:Date.now(), expire:expire }; ;}
Comprend les 3 champs suivants
Étant donné que la valeur définie par localStorage ne peut pas être un objet, la méthode JSON.stringify est utilisée ici pour la convertir en chaîne, et elle doit être reconvertie lorsqu'elle est utilisée.
Puis on ajoute une méthode pour obtenir
Storage.prototype.getExpire= key =>{ let val =localStorage.getItem(key); if(!val){ return val; } val =JSON.parse(val); >val.expire){ localStorage.removeItem(key); return null } return val.data;}
Nous pouvons le tester d'abord
localStorage.setExpire(token,'xxxxxx',5000);window.setInterval(()=>{ console.log(localStorage.getExpire(token));},1000)
Essentiellement, notre idée n'est pas de nettoyer régulièrement les éléments expirés, mais de déterminer s'ils sont expirés lorsqu'ils sont obtenus, puis d'effacer les éléments s'ils sont expirés.
Ce qui précède représente l’intégralité du contenu de cet article. J’espère qu’il sera utile à l’étude de chacun. J’espère également que tout le monde soutiendra le réseau VeVb Wulin.