亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

自定義辦法設(shè)置 localStorage 過期時(shí)間

zhou_you / 2353人閱讀

摘要:是后臺(tái)在瀏覽器注入一個(gè)設(shè)置了的不可讀取的,由后臺(tái)保存在數(shù)據(jù)庫或者內(nèi)存中,在中,是靠作為唯一標(biāo)示來實(shí)現(xiàn)的,也可以設(shè)置過期時(shí)間。是的數(shù)據(jù)存儲(chǔ)辦法,也是有大小限制的,但是不可以設(shè)置過期時(shí)間。本文主要說的是如何自定義辦法讓實(shí)現(xiàn)過期時(shí)間。

introduction

在 web 開發(fā)中,我們知道 cookie、session、localStorage 都可以保存用戶的數(shù)據(jù),cookie的 domain、path 限制了 cookie 的跨域, 有數(shù)量和大小的限制,可以設(shè)置有效時(shí)間。 session是后臺(tái)在瀏覽器注入一個(gè)設(shè)置了 httponly 的不可讀取的 cookie , session data由后臺(tái)保存在數(shù)據(jù)庫或者內(nèi)存中,在web中,session 是靠 cookie 作為唯一標(biāo)示來實(shí)現(xiàn)的,也可以設(shè)置過期時(shí)間。 localStorage 是 H5 的數(shù)據(jù)存儲(chǔ)辦法, 也是有大小限制的,但是不可以設(shè)置過期時(shí)間。 本文主要說的是如何自定義辦法讓 localStorage 實(shí)現(xiàn)過期時(shí)間。

module.exports = {
    // 過期時(shí)間,默認(rèn)30天
    age: 30 * 24 * 60 * 60 * 1000,
    /**
     * 設(shè)置過期時(shí)間
     * @param age
     * @returns {exports}
     */
    setAge: function (age) {
        this.age = age;
        return this;
    },
    /**
     * 設(shè)置 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;
        
        // 加入時(shí)間
        value._time = _time;
        // 過期時(shí)間
        value._age = _time + _age;
        localStorage.setItem(key, JSON.stringify(value));
        return this;
    },
    /**
     * 判斷一個(gè) 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);
            // 當(dāng)前時(shí)間是否大于過期時(shí)間
            isExpire = now > value._age;
        } else {
            // 沒有值也是過期
        }
        return isExpire;
    },
    /**
     * 獲取某個(gè) 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設(shè)備上無法重復(fù)setItem()

另外,在iPhone/iPad上有時(shí)設(shè)置setItem()時(shí)會(huì)出現(xiàn)詭異的QUOTA_EXCEEDED_ERR錯(cuò)誤,這時(shí)一般在setItem之前,先removeItem()就ok了。

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://www.ezyhdfw.cn/yun/87844.html

相關(guān)文章

  • 瀏覽器緩存

    摘要:是服務(wù)器響應(yīng)消息頭字段,在響應(yīng)請求時(shí)告訴瀏覽器在過期時(shí)間前瀏覽器可以直接從瀏覽器緩存取數(shù)據(jù),而無需再次請求。注意點(diǎn)啟用緩存之后,瀏覽器的緩存行為與用戶的操作方式有關(guān)系,驗(yàn)證緩存特性開啟的時(shí)候不要被假象蒙蔽。 以前總是傻傻的分不清緩存和cookie,誤認(rèn)為cookie就是指瀏覽器緩存。還有 cookie localStorage sessionStorage 緩存 四者的關(guān)系也沒有搞明白...

    Doyle 評論0 收藏0
  • 瀏覽器緩存

    摘要:是服務(wù)器響應(yīng)消息頭字段,在響應(yīng)請求時(shí)告訴瀏覽器在過期時(shí)間前瀏覽器可以直接從瀏覽器緩存取數(shù)據(jù),而無需再次請求。注意點(diǎn)啟用緩存之后,瀏覽器的緩存行為與用戶的操作方式有關(guān)系,驗(yàn)證緩存特性開啟的時(shí)候不要被假象蒙蔽。 以前總是傻傻的分不清緩存和cookie,誤認(rèn)為cookie就是指瀏覽器緩存。還有 cookie localStorage sessionStorage 緩存 四者的關(guān)系也沒有搞明白...

    ashe 評論0 收藏0
  • 關(guān)于網(wǎng)頁本地存儲(chǔ)的一些思考

    摘要:于是一個(gè)擁有版本控制和過期控制的本地內(nèi)容存儲(chǔ)功能模塊就算初步完成了。最后基于這個(gè)事情的考慮,于是順便寫了個(gè)本地存儲(chǔ)控制的庫,基本都在上面了 前言 關(guān)于localStorage sessionStorage之類的api怎么用已經(jīng)無需我再贅述了,但是具體怎么落實(shí)到一個(gè)稍微復(fù)雜一些的業(yè)務(wù)中還是需要做一些前期的準(zhǔn)備 遇見的一些問題 1.localStorage 與 sessionStorage...

    陳江龍 評論0 收藏0
  • 關(guān)于網(wǎng)頁本地存儲(chǔ)的一些思考

    摘要:于是一個(gè)擁有版本控制和過期控制的本地內(nèi)容存儲(chǔ)功能模塊就算初步完成了。最后基于這個(gè)事情的考慮,于是順便寫了個(gè)本地存儲(chǔ)控制的庫,基本都在上面了 前言 關(guān)于localStorage sessionStorage之類的api怎么用已經(jīng)無需我再贅述了,但是具體怎么落實(shí)到一個(gè)稍微復(fù)雜一些的業(yè)務(wù)中還是需要做一些前期的準(zhǔn)備 遇見的一些問題 1.localStorage 與 sessionStorage...

    henry14 評論0 收藏0

發(fā)表評論

0條評論

最新活動(dòng)
閱讀需要支付1元查看
<