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...