摘要:是后臺在瀏覽器注入一個設置了的不可讀取的,由后臺保存在數據庫或者內存中,在中,是靠作為唯一標示來實現的,也可以設置過期時間。是的數據存儲辦法,也是有大小限制的,但是不可以設置過期時間。本文主要說的是如何自定義辦法讓實現過期時間。
introduction
在 web 開發中,我們知道 cookie、session、localStorage 都可以保存用戶的數據,cookie的 domain、path 限制了 cookie 的跨域, 有數量和大小的限制,可以設置有效時間。 session是后臺在瀏覽器注入一個設置了 httponly 的不可讀取的 cookie , session data由后臺保存在數據庫或者內存中,在web中,session 是靠 cookie 作為唯一標示來實現的,也可以設置過期時間。 localStorage 是 H5 的數據存儲辦法, 也是有大小限制的,但是不可以設置過期時間。 本文主要說的是如何自定義辦法讓 localStorage 實現過期時間。
module.exports = { // 過期時間,默認30天 age: 30 * 24 * 60 * 60 * 1000, /** * 設置過期時間 * @param age * @returns {exports} */ setAge: function (age) { this.age = age; return this; }, /** * 設置 localStorage * @param key * @param value */ set: function (key, content) { localStorage.removeItem(key); let _time = new Date().getTime(); let _age = this.age; let value = {}; value._value = content; // 加入時間 value._time = _time; // 過期時間 value._age = _time + _age; localStorage.setItem(key, JSON.stringify(value)); return this; }, /** * 判斷一個 localStorage 是否過期 * @param key * @returns {boolean} */ isExpire: function (key) { var isExpire = true, value = localStorage.getItem(key), now = new Date().getTime(); if (value) { value = JSON.parse(value); // 當前時間是否大于過期時間 isExpire = now > value._age; } else { // 沒有值也是過期 } return isExpire; }, /** * 獲取某個 localStorage 值 * @param key * @returns {*} */ get: function (key) { let isExpire = this.isExpire(key); let value = null; if (isExpire) return value; value = localStorage.getItem(key); value = JSON.parse(value); return value._value; } };usage
var localstorage = require("./localstorage.js"); localstorage.setAge(24*60*60*1000).set("a": "abc").set("b",{a:1,b:2})在ios設備上無法重復setItem()
另外,在iPhone/iPad上有時設置setItem()時會出現詭異的QUOTA_EXCEEDED_ERR錯誤,這時一般在setItem之前,先removeItem()就ok了。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/87844.html
摘要:于是一個擁有版本控制和過期控制的本地內容存儲功能模塊就算初步完成了。最后基于這個事情的考慮,于是順便寫了個本地存儲控制的庫,基本都在上面了 前言 關于localStorage sessionStorage之類的api怎么用已經無需我再贅述了,但是具體怎么落實到一個稍微復雜一些的業務中還是需要做一些前期的準備 遇見的一些問題 1.localStorage 與 sessionStorage...
摘要:于是一個擁有版本控制和過期控制的本地內容存儲功能模塊就算初步完成了。最后基于這個事情的考慮,于是順便寫了個本地存儲控制的庫,基本都在上面了 前言 關于localStorage sessionStorage之類的api怎么用已經無需我再贅述了,但是具體怎么落實到一個稍微復雜一些的業務中還是需要做一些前期的準備 遇見的一些問題 1.localStorage 與 sessionStorage...
閱讀 3244·2021-11-11 11:00
閱讀 2565·2019-08-29 11:23
閱讀 1441·2019-08-29 10:58
閱讀 2323·2019-08-29 10:58
閱讀 2952·2019-08-23 18:26
閱讀 2507·2019-08-23 18:18
閱讀 2038·2019-08-23 16:53
閱讀 3411·2019-08-23 13:13