LocalStorage wird immer im Browser gespeichert, es sei denn, es wird manuell gelöscht. In vielen Fällen benötigen wir jedoch möglicherweise eine Ablaufzeit. Wenn wir beispielsweise das Benutzerauthentifizierungstoken auf dem Client speichern, ist es innerhalb einer Woche gültig , und wenn es länger als eine Woche ist, melden Sie sich erneut an. Wie kann diese Anforderung dann umgesetzt werden?
Sie müssen wissen, dass localStorage selbst keinen Ablaufmechanismus bereitstellt. In diesem Fall können wir ihn nur selbst implementieren. Wir können eine solche Methode direkt zu seinem Prototyp hinzufügen.
Storage.prototype.setExpire=(key,value,expire) =>{ };Storage.setExpire(key,value,expire);
Um abzulaufen, muss die Zeit aufgezeichnet werden, wenn der Wert festgelegt wird, und dann beim Erhalten des Werts beurteilt werden, ob die Differenz zwischen der aktuellen Zeit und der vorherigen Zeit innerhalb eines bestimmten Bereichs liegt Außerhalb des Bereichs wird das aktuelle Element gelöscht und null zurückgegeben
Um Zeit zu einem Wert hinzuzufügen, muss ein Format definiert werden
Storage.prototype.setExpire=(key, value, Expire) =>{ let obj={ data:value, time:Date.now(), Expire:expire }; ;}
Enthält die folgenden 3 Felder
Da der von localStorage festgelegte Wert kein Objekt sein kann, wird hier die Methode JSON.stringify verwendet, um ihn in eine Zeichenfolge umzuwandeln, und er muss bei Verwendung zurückkonvertiert werden.
Dann fügen wir eine Methode hinzu, um sie zu erhalten
Storage.prototype.getExpire= key =>{ let val =localStorage.getItem(key); if(!val){ return val; if(Date.now()-val.time >val.expire){ localStorage.removeItem(key); return null } return val.data;}
Wir können es zuerst testen
localStorage.setExpire(token,'xxxxxx',5000);window.setInterval(()=>{ console.log(localStorage.getExpire(token));},1000)
Im Wesentlichen besteht unsere Idee nicht darin, abgelaufene Artikel regelmäßig zu bereinigen, sondern beim Erhalt festzustellen, ob sie abgelaufen sind, und die Artikel dann zu löschen, wenn sie abgelaufen sind.
Das Obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, dass er für das Studium aller hilfreich ist. Ich hoffe auch, dass jeder das VeVb Wulin Network unterstützt.