LocalStorage akan selalu disimpan di browser kecuali jika dihapus secara manual. Namun, dalam banyak kasus kita mungkin memerlukan localStorage untuk memiliki waktu kedaluwarsa , dan jika melebihi satu minggu, Login lagi, lalu bagaimana cara merealisasikan kebutuhan tersebut?
Perlu anda ketahui bahwa localStorage sendiri tidak menyediakan mekanisme kadaluarsa, dalam hal ini kita hanya bisa mengimplementasikannya sendiri. Kita bisa langsung menambahkan metode tersebut ke prototype-nya.
Storage.prototype.setExpire=(kunci,nilai,kedaluwarsa) =>{ };Storage.setExpire(kunci,nilai,kedaluwarsa);
Untuk kedaluwarsa, waktu harus dicatat. Ide kami adalah mencatat waktu saat ini saat menetapkan nilai, dan kemudian saat memperoleh nilai, menilai apakah perbedaan antara waktu saat ini dan waktu sebelumnya berada dalam kisaran tertentu di luar rentang, hapus item saat ini dan kembalikan nol
Untuk menambahkan waktu ke suatu nilai, format harus ditentukan
Storage.prototype.setExpire=(kunci, nilai, kedaluwarsa) =>{ let obj={ data:value, time:Date.now(), expired:expire }; localStorage.setItem(key,JSON.stringify(obj)) ;}
Termasuk 3 bidang berikut
Karena nilai yang ditetapkan oleh localStorage tidak bisa berupa objek, metode JSON.stringify digunakan di sini untuk mengubahnya menjadi string, dan harus dikonversi kembali saat digunakan.
Kemudian kami menambahkan metode untuk memperolehnya
Penyimpanan.prototipe.getExpire= kunci =>{ biarkan val =Penyimpanan lokal.getItem(kunci); if(!val){ kembalikan val; } val =JSON.parse(val); >val.kedaluwarsa){ localStorage.removeItem(kunci); kembalikan null; } kembalikan val.data;}
Kita bisa mengujinya terlebih dahulu
localStorage.setExpire(token,'xxxxxx',5000);window.setInterval(()=>{ console.log(localStorage.getExpire(token));},1000)
Pada dasarnya, ide kami bukanlah untuk membersihkan barang-barang yang kadaluarsa secara teratur, tetapi untuk menentukan apakah barang-barang tersebut sudah kadaluwarsa ketika diperoleh, dan kemudian membersihkan barang-barang tersebut jika sudah kadaluwarsa.
Di atas adalah keseluruhan isi artikel ini, saya harap dapat bermanfaat untuk pembelajaran semua orang. Saya juga berharap semua orang mendukung VeVb Wulin Network.