亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JavaScript > 正文

localstorage實現帶過期時間的緩存功能

2019-11-19 11:15:03
字體:
來源:轉載
供稿:網友

前言

一般可以使用cookie,localstorage,sessionStorage來實現瀏覽器端的數據緩存,減少對服務器的請求。

1.cookie數據存放在本地硬盤中,只要在過期時間之前,都是有效的,即使重啟瀏覽器。但是會在每次HTTP請求中添加到請求頭中,如果數據過多,會造成性能問題。

2.sessionStorage保存在瀏覽器內存中,當關閉頁面或者瀏覽器之后,信息丟失。

3.localstorage也是保存在本地硬盤中,除非主動清除,信息是不會消失的。但是實際使用時我們需要對緩存設置過期時間,本文便是講解如何為localstorage添加過期時間功能。

這三者僅支持同源(host+port)的數據,不同源的數據不能互相訪問到。

localstorage

localstorage支持以下方法

  • 保存數據:localStorage.setItem(key,value);
  • 讀取數據:localStorage.getItem(key);
  • 刪除單個數據:localStorage.removeItem(key);
  • 刪除所有數據:localStorage.clear();
  • 得到某個索引的key:localStorage.key(index);  

需要注意的是,僅支持String類型數據的讀取,如果存放的是數值類型,讀出來的是字符串類型的,對于存儲對象類型的,需要在保存之前JSON化為String類型。

對于緩存,我們一般有以下方法

set(key,value,expiredTime);get(key);remove(key);expired(key,expiredTime);clear(); 

實現

設置緩存

對于過期時間的實現,除了用于存放原始值的緩存(key),這里添加了兩個緩存(key+EXPIRED:TIME)和(key+EXPIRED:START:TIME),一個用于存放過期時間,一個用于存放緩存設置時的時間。

當讀取的時候比較 (過期時間+設置緩存的時間)和當前的時間做對比。如果(過期時間+設置緩存時的時間)大于當前的時間,則說明緩存沒過期。

注意這里使用JSON.stringify對存入的對象JSON化。讀取的時候也要轉回原始對象。

"key":{    //輔助    "expiredTime": "EXPIRED:TIME",    "expiredStartTime": "EXPIRED:START:TIME",    //全局使用    //用戶信息    "loginUserInfo": "USER:INFO",    //搜索字段    "searchString": "SEARCH:STRING",  },  /**   * 設置緩存   * @param key   * @param value   * @param expiredTimeMS 過期時間,單位ms   */  "set":function (key,value,expiredTimeMS) {    if((expiredTimeMS == 0 ) || (expiredTimeMS == null)){      localStorage.setItem(key,value);    }    else {      localStorage.setItem(key,JSON.stringify(value));      localStorage.setItem(key+cache.key.expiredTime,expiredTimeMS);      localStorage.setItem(key+cache.key.expiredStartTime,new Date().getTime());    }  },

 讀取緩存

由于讀取出來的是時間信息是字符串,需要將其轉化為數字再進行比較。

/**   * 獲取鍵   * @param key   * @returns {*} key存在,返回對象;不存在,返回null   */  "get":function (key) {    var expiredTimeMS = localStorage.getItem(key+cache.key.expiredTime);    var expiredStartTime = localStorage.getItem(key+cache.key.expiredStartTime);    var curTime = new Date().getTime();    var sum = Number(expiredStartTime) + Number(expiredTimeMS);    if((sum) > curTime){      console.log("cache-緩存["+key+"]存在!");      return JSON.parse(localStorage.getItem(key));    }    else {      console.log("cache-緩存["+key+"]不存在!");      return null;    }  },

移除緩存

移除緩存時需要把三個鍵同時移除。

/**   * 移除鍵   * @param key   */  "remove":function (key) {    localStorage.removeItem(key);    localStorage.removeItem(key+cache.key.expiredTime);    localStorage.removeItem(key+cache.key.expiredStartTime);  },

其他代碼

/**   * 對鍵重新更新過期時間   * @param key   * @param expiredTimeMS 過期時間ms   */  "expired":function (key,expiredTimeMS) {    if(cache.get(key)!=null){      localStorage.setItem(key+cache.key.expiredTime,expiredTimeMS);    }  },  /**   * 清除所有緩存   */  "clear":function () {    localStorage.clear();  }

總結

以上所述是小編給大家介紹的localstorage實現帶過期時間的緩存功能,希望對大家有所幫助如果大家有任何疑問歡迎給我留言,小編會及時回復大家的!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
日韩精品亚洲精品| 亚洲国产成人久久| 中文字幕亚洲无线码a| 国产精品久久婷婷六月丁香| 国产精品aaaa| 亚州欧美日韩中文视频| 亚洲在线观看视频| 91老司机精品视频| 亚洲国产精久久久久久| 懂色aⅴ精品一区二区三区蜜月| 欧美激情一区二区三区在线视频观看| 国产97免费视| 日韩美女免费线视频| 国外成人在线播放| 欧美高清电影在线看| 亚洲国产高清福利视频| 日韩视频免费在线| 欧美激情在线有限公司| 精品日韩视频在线观看| 精品久久久久久久久久久久久| 亚洲大胆人体视频| 亚洲视频欧洲视频| 亚洲影视中文字幕| 欧美一级电影免费在线观看| 国产精品九九久久久久久久| 亚洲最大av网站| 日韩免费黄色av| 成人亲热视频网站| 成人天堂噜噜噜| 日韩精品在线免费观看视频| 亚洲精品国产综合久久| 精品日本高清在线播放| 国产精品视频一区二区高潮| 精品久久久久久国产91| 乱亲女秽乱长久久久| 亚洲成人动漫在线播放| 午夜精品久久久久久久99热| 8x海外华人永久免费日韩内陆视频| 欧美成人精品激情在线观看| 国产亚洲精品久久久久久牛牛| 国产精品99一区| 97在线视频国产| 欧美精品18videosex性欧美| 成人97在线观看视频| 最近中文字幕日韩精品| 国产精品免费视频xxxx| 九九热精品视频在线播放| 国产免费一区二区三区香蕉精| 这里只有精品久久| xx视频.9999.com| 欧美xxxx做受欧美.88| 国内久久久精品| 亚洲男人天堂九九视频| 亚洲欧美成人在线| 成人h片在线播放免费网站| 97在线观看免费高清| 亚洲欧美日韩在线一区| 亚洲激情自拍图| 欧美大奶子在线| 国产精品视频午夜| 亚洲精品美女久久久| 91亚洲国产成人久久精品网站| 97超碰蝌蚪网人人做人人爽| 日韩高清中文字幕| 午夜精品久久久久久久99热| 亚洲精品成人久久| 92福利视频午夜1000合集在线观看| 欧美在线视频一区| 国产精品久久久久久久久借妻| 欧美大片大片在线播放| 国产成人av网| 欧美激情精品久久久久久蜜臀| 国产精品视频区| 欧美激情在线有限公司| 欧美国产日韩中文字幕在线| 久久亚洲综合国产精品99麻豆精品福利| 亚洲女同性videos| 日本精品久久电影| 亚洲精品自拍视频| 欧美在线视频免费观看| 91亚洲精品久久久| 国产色婷婷国产综合在线理论片a| 国产盗摄xxxx视频xxx69| 亚洲日韩中文字幕在线播放| 欧美性猛交xxxx| 亚洲自拍偷拍色图| 91久久嫩草影院一区二区| 蜜臀久久99精品久久久无需会员| 日韩视频―中文字幕| 成人黄色免费在线观看| 国产精品久久久久国产a级| 亚洲视频一区二区| 成人福利在线视频| 日韩成人中文字幕在线观看| 国产精自产拍久久久久久| 亚洲午夜色婷婷在线| 性欧美视频videos6一9| 日韩欧美在线中文字幕| 欧美中文字幕在线| 国产精品一区专区欧美日韩| 欧美日韩国产限制| 美日韩精品免费观看视频| 日韩国产欧美精品一区二区三区| 国产精品午夜国产小视频| 成人免费高清完整版在线观看| 国产精品欧美日韩| 亚洲欧美日韩爽爽影院| 亚洲自拍在线观看| 欧美大片在线免费观看| 国产精品视频导航| 欧美精品电影免费在线观看| 91精品久久久久久久久| 欧美激情一区二区三区久久久| 色一区av在线| 91久久久久久久久久久| 538国产精品一区二区免费视频| 日韩中文字幕在线视频播放| 亚洲成人激情视频| 亚洲人午夜色婷婷| 26uuu另类亚洲欧美日本一| 亚洲性视频网站| 久久精品国产精品亚洲| 激情av一区二区| 色噜噜狠狠狠综合曰曰曰88av| 亚洲日本中文字幕免费在线不卡| 日韩电影在线观看中文字幕| 亚洲欧洲午夜一线一品| 深夜福利日韩在线看| 日韩免费不卡av| 欧美中文字幕在线播放| 亚洲精品www久久久| 中文字幕久精品免费视频| 97免费视频在线播放| 日韩av片永久免费网站| 久久99国产精品自在自在app| 久久久亚洲成人| 一本色道久久88亚洲综合88| 国产日韩欧美在线播放| 久久久久久久电影一区| 欧美激情a在线| 国产精品va在线播放我和闺蜜| 日韩欧美在线国产| 亚洲人午夜精品| 国产精品久久婷婷六月丁香| 久久国产精品电影| 国产精品久久久久久久久久久久久| 欧美激情性做爰免费视频| 精品久久久久久久中文字幕| 秋霞成人午夜鲁丝一区二区三区| 国产精品小说在线| 26uuu久久噜噜噜噜| 亚洲欧美三级在线| 欧美成人精品一区二区| 日韩在线免费av| 精品无人区太爽高潮在线播放| 亚洲在线观看视频网站| 在线播放精品一区二区三区| 国产精品午夜国产小视频| 欧美视频国产精品| 亚洲韩国欧洲国产日产av| 91久久久久久久| 国产成人精品国内自产拍免费看| 欧美亚洲另类视频| 色综合久久88色综合天天看泰|