سيتم دائمًا تخزين LocalStorage في المتصفح ما لم يتم مسحه يدويًا، ومع ذلك، في كثير من الحالات، قد نحتاج إلى LocalStorage للحصول على وقت انتهاء الصلاحية. على سبيل المثال، إذا قمنا بحفظ رمز مصادقة المستخدم على العميل، فسيكون صالحًا خلال أسبوع واحد وإذا تجاوزت الأسبوع قم بتسجيل الدخول مرة أخرى، فكيف يتحقق هذا المطلب؟
يجب أن تعلم أن 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)) ;}يتضمن الحقول الثلاثة التالية
نظرًا لأن القيمة التي تم تعيينها بواسطة localStorage لا يمكن أن تكون كائنًا، يتم استخدام طريقة JSON.stringify هنا لتحويلها إلى سلسلة، ويجب تحويلها مرة أخرى عند استخدامها.
ثم نضيف طريقة للحصول عليها
Storage.prototype.getExpire= key =>{ Let val =localStorage.getItem(key); if(!val){ return val } val =JSON.parse(val); >val.expire){ localStorage.removeItem(key);يمكننا اختباره أولا
localStorage.setExpire(token,'xxxxxx',5000);window.setInterval(()=>{ console.log(localStorage.getExpire(token));},1000)في الأساس، فكرتنا ليست تنظيف العناصر منتهية الصلاحية بانتظام، ولكن تحديد ما إذا كانت منتهية الصلاحية عند الحصول عليها، ثم مسح العناصر إذا انتهت صلاحيتها.
ما ورد أعلاه هو المحتوى الكامل لهذه المقالة وآمل أن يكون مفيدًا لدراسة الجميع وآمل أيضًا أن يدعم الجميع شبكة VeVb Wulin.