前端本地儲存localStorage及應用

2021-09-10 21:52:13 字數 2950 閱讀 6445

localstorage是html5定義的一種本地儲存方式,其特點是可以長期儲存在使用者本地磁碟且容量較大,w3c標準建議的**端容量是 5mb,前端可以將一些server不需要的資料儲存在localstorage而非cookie中。

localstorage是storage物件的例項,我們可以看看storage都有哪些方法:

var c = object.

getownpropertynames

(storage)

for(

var d of c)

if(e.

get)

if(e.

set)

}

在我的chrome瀏覽器執行的結果是:

可見storage的原型上包含clear, getitem, setitem, removeitem, key這幾個方法,還有乙個類似array物件的length屬性,表明其包含多少條儲存資訊。

根據mdn文件,storage中的鍵值對總是以字串的形式儲存,各方法的描述如下:

api說明

storage.key()

接受乙個數值 n 作為引數,並返回儲存中的第 n 個鍵名。

storage.getitem()

接受乙個鍵名作為引數,返回鍵名對應的值。

storage.setitem()

接受乙個鍵名和值作為引數,將會把鍵值對新增到儲存中,如果鍵名存在,則更新其對應的值。

storage.removeitem()

接受乙個鍵名作為引數,並把該鍵名從儲存中刪除。

storage.clear()

呼叫該方法會清空儲存中的所有鍵名。

在實際業務中,我們需要在本地儲存一些不經常變更的資訊,比如鏈結這種;另外,由於localstorage沒有自動過期的設定,需要通過js操作,我們設定乙個額外的鍵管理過期時間(本文中為cache_expire), 具體如下圖所示:

基本的**實現如下:

!

function

(w)this

.obj =

null

;try

catch(e

)}cache.prototype.

getitem

=function

(key)

cache.prototype.

setitem

=function

(key, value));

this

.obj[key]

= value;

} cache.prototype.

removeitem

=function

(key)

catch(e

)}} cache.prototype.

hasdata

=function()

// this.obj 需要為物件

for(

var o in

this

.obj)

return

false;}

cache.

get=

function

(key)")

;// 檢測是否過期,過期則返回乙個空cache物件

return remlist[key]

>

(new

date).

gettime()

?new

cache

(json

.parse

(w.localstorage.

getitem

(key)))

:new

cache

(null);

}catch(e

)}cache.

set=

function

(key, value)

// 每次更改重置過期時間

var list =

json

.parse

(w.localstorage.

getitem

(expire))||

; list[key]=(

newdate).

gettime()

+ last;

trycatch(e

)}} cache.

clear

=function

(key)

;try

catch(e

)}}// 開啟頁面後檢測本地儲存是否過期

settimeout

(function()

;var current =

(new

date).

gettime()

;for

(var i in list)},

5e3)

}(window)

在實際應用中包裝一層即可:

function

editcache

(key, value);if

(cacheobj.

hasdata()

)// 更改內容

cachedata[key]

= value;

cacheobj.

setitem

('data'

, cachedata)

; cache.

set(cachekey, cacheobj);}

}editcache

('user_info',)

editcache

('user_imglist'

,)

cookie與本地儲存localStorage

cookie預設是臨時儲存的,當瀏覽器關閉時,自動銷毀。如果想長時間存放乙個cookie,同時需要設定乙個過期時間。localstorage.keyname value localstorage keyname value 注 localstorage是長期資料儲存,sessionstorage臨時...

jquery 的本地儲存 localStorage

前面寫了jquery 本地儲存 cookie 的基本用法 jquery cookie示例 只提示一次的彈框 兩篇介紹cookie用法的篇章之後,下面來看看 localstorage 這個本地儲存的方式。2 localstorage 儲存在本地,容量為5m或者更大,不會在請求時候攜帶傳遞,在所有同源視...

前端本地儲存的方法

本地儲存有三種方法localstorage sessionstorage cookie cookie存值大小4kb,使用時得封裝,預設儲存時間7天 localstorage存值5mb,儲存時間永久 sessionstorage為會話級別,頁面關閉以後會銷毀 存 let ls localstorage...