欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

JavaScript設(shè)置失效時(shí)間清除本地存儲(chǔ)數(shù)據(jù)的幾種方法

 更新時(shí)間:2025年02月25日 11:04:34   作者:the_flash  
這篇文章介紹了如何使用localStorage和sessionStorage設(shè)置失效時(shí)間來清除本地存儲(chǔ)的數(shù)據(jù),并提供了一種自動(dòng)清除過期數(shù)據(jù)的方法,需要的朋友可以參考下

要通過設(shè)置失效時(shí)間清除本地存儲(chǔ)的數(shù)據(jù),可以使用 localStorage 或 sessionStorage,并結(jié)合 JavaScript 實(shí)現(xiàn)。以下是具體步驟:

1. 使用 localStorage 存儲(chǔ)數(shù)據(jù)并設(shè)置失效時(shí)間

// 存儲(chǔ)數(shù)據(jù)并設(shè)置失效時(shí)間(單位:毫秒)
function setLocalStorageWithExpiry(key, value, expiryInMilliseconds) {
    const now = new Date();
    const item = {
        value: value,
        expiry: now.getTime() + expiryInMilliseconds
    };
    localStorage.setItem(key, JSON.stringify(item));
}

// 獲取數(shù)據(jù)并檢查是否失效
function getLocalStorageWithExpiry(key) {
    const itemStr = localStorage.getItem(key);
    if (!itemStr) {
        return null;
    }
    const item = JSON.parse(itemStr);
    const now = new Date();
    if (now.getTime() > item.expiry) {
        localStorage.removeItem(key);
        return null;
    }
    return item.value;
}

// 示例:存儲(chǔ)數(shù)據(jù)并設(shè)置 1 小時(shí)后失效
setLocalStorageWithExpiry('myKey', 'myValue', 60 * 60 * 1000);

// 示例:獲取數(shù)據(jù)
const value = getLocalStorageWithExpiry('myKey');
console.log(value); // 輸出: myValue (如果未失效) 或 null (如果已失效)

2. 使用 sessionStorage 存儲(chǔ)數(shù)據(jù)并設(shè)置失效時(shí)間

sessionStorage 的生命周期與瀏覽器會(huì)話相關(guān),關(guān)閉瀏覽器后數(shù)據(jù)會(huì)被清除。如果需要手動(dòng)設(shè)置失效時(shí)間,可以使用類似 localStorage 的方法。

// 存儲(chǔ)數(shù)據(jù)并設(shè)置失效時(shí)間(單位:毫秒)
function setSessionStorageWithExpiry(key, value, expiryInMilliseconds) {
    const now = new Date();
    const item = {
        value: value,
        expiry: now.getTime() + expiryInMilliseconds
    };
    sessionStorage.setItem(key, JSON.stringify(item));
}

// 獲取數(shù)據(jù)并檢查是否失效
function getSessionStorageWithExpiry(key) {
    const itemStr = sessionStorage.getItem(key);
    if (!itemStr) {
        return null;
    }
    const item = JSON.parse(itemStr);
    const now = new Date();
    if (now.getTime() > item.expiry) {
        sessionStorage.removeItem(key);
        return null;
    }
    return item.value;
}

// 示例:存儲(chǔ)數(shù)據(jù)并設(shè)置 1 小時(shí)后失效
setSessionStorageWithExpiry('myKey', 'myValue', 60 * 60 * 1000);

// 示例:獲取數(shù)據(jù)
const value = getSessionStorageWithExpiry('myKey');
console.log(value); // 輸出: myValue (如果未失效) 或 null (如果已失效)

3. 自動(dòng)清除過期數(shù)據(jù)

你可以定期檢查并清除過期的數(shù)據(jù):

function clearExpiredLocalStorage() {
    for (let i = 0; i < localStorage.length; i++) {
        const key = localStorage.key(i);
        getLocalStorageWithExpiry(key);
    }
}

// 每隔一段時(shí)間檢查一次
setInterval(clearExpiredLocalStorage, 60 * 60 * 1000); // 每小時(shí)檢查一次

通過這些方法,你可以有效地管理本地存儲(chǔ)的數(shù)據(jù),并確保在設(shè)定的失效時(shí)間后自動(dòng)清除。

到此這篇關(guān)于JavaScript設(shè)置失效時(shí)間清除本地存儲(chǔ)數(shù)據(jù)的幾種方法的文章就介紹到這了,更多相關(guān)JavaScript設(shè)置失效時(shí)間內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Elasticsearch實(shí)現(xiàn)復(fù)合查詢高亮結(jié)果功能

    Elasticsearch實(shí)現(xiàn)復(fù)合查詢高亮結(jié)果功能

    這篇文章主要介紹了Elasticsearch實(shí)現(xiàn)復(fù)合查詢,高亮結(jié)果功能,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-09-09
  • JS實(shí)現(xiàn)頁面長(zhǎng)時(shí)間不操作退出到登錄頁面的示例代碼

    JS實(shí)現(xiàn)頁面長(zhǎng)時(shí)間不操作退出到登錄頁面的示例代碼

    這篇文章主要介紹了JS實(shí)現(xiàn)頁面長(zhǎng)時(shí)間不操作退出到登錄頁面的示例代碼,通過在head標(biāo)簽中引入jquey和頁面長(zhǎng)時(shí)間不操作的js頁面,結(jié)合實(shí)例代碼講解的非常詳細(xì),需要的朋友可以參考下
    2024-03-03
  • 回車直接實(shí)現(xiàn)點(diǎn)擊某按鈕的效果即觸發(fā)單擊事件

    回車直接實(shí)現(xiàn)點(diǎn)擊某按鈕的效果即觸發(fā)單擊事件

    這篇文章主要介紹了回車直接實(shí)現(xiàn)點(diǎn)擊某按鈕的效果即觸發(fā)單擊事件,需要的朋友可以參考下
    2014-02-02
  • JS自動(dòng)生成動(dòng)態(tài)HTML驗(yàn)證碼頁面

    JS自動(dòng)生成動(dòng)態(tài)HTML驗(yàn)證碼頁面

    這篇文章主要介紹了JS自動(dòng)生成動(dòng)態(tài)HTML驗(yàn)證碼頁面,輸入錯(cuò)誤自動(dòng)清空輸入框的功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-06-06
  • 詳解JavaScript自定義函數(shù)

    詳解JavaScript自定義函數(shù)

    這篇文章主要介紹了JavaScript自定義函數(shù)的相關(guān)資料,文中講解非常細(xì)致,代碼幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下
    2020-07-07
  • JS實(shí)現(xiàn)利用兩個(gè)隊(duì)列表示一個(gè)棧的方法

    JS實(shí)現(xiàn)利用兩個(gè)隊(duì)列表示一個(gè)棧的方法

    這篇文章主要介紹了JS實(shí)現(xiàn)利用兩個(gè)隊(duì)列表示一個(gè)棧的方法,簡(jiǎn)單分析了使用兩個(gè)隊(duì)列表示一個(gè)棧的原理,并結(jié)合具體實(shí)例分析了javascript相關(guān)操作技巧,需要的朋友可以參考下
    2017-12-12
  • 純javascript實(shí)現(xiàn)簡(jiǎn)單下拉刷新功能

    純javascript實(shí)現(xiàn)簡(jiǎn)單下拉刷新功能

    這篇文章主要介紹了純javascript實(shí)現(xiàn)簡(jiǎn)單下拉刷新功能,沒有借助任何的框架,十分簡(jiǎn)單實(shí)用,有需要的小伙伴來參考下吧。
    2015-03-03
  • webpack-dev-server自動(dòng)更新頁面方法

    webpack-dev-server自動(dòng)更新頁面方法

    下面小編就為大家分享一篇webpack-dev-server自動(dòng)更新頁面方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2018-02-02
  • 最新評(píng)論