JS本地儲存資料的幾種方法

2021-08-02 10:29:28 字數 1972 閱讀 1174

1.cookie

這個恐怕是最常見也是用得最多的技術了,也是比較古老的技術了。cookie優點很多,使用起來很方便

但它的缺點也很多:

比如跨域訪問問題;無法儲存太大的資料(最大僅為4kb);本地儲存的資料會傳送給伺服器,浪費頻寬 等等;

**如下

function setcookie(name, value) 

else

else

else }}

}function getcookie(name)

if (key != null && key != "")

else

return

""; }

else

}

2.使用sessionstorage、localstorage

localstorage:

是一種你不主動清除它,它會一直將儲存資料儲存在客戶端的儲存方式,即使你關閉了客戶端(瀏覽器),屬於本地持久層儲存

sessionstorage:

用於本地儲存乙個會話(session)中的資料,一旦會話關閉,那麼資料會消失,比如重新整理。

有時候,我們需要將資料儲存到sessionstorage和localstorage中,這樣做的好處有:

1 快取資料

2 減少對記憶體的占用

但是,storage只能儲存字串的資料,對於js中常用的陣列或物件卻不能直接儲存。

它能儲存更大的資料(ie8上是10mb,chrome是5mb),同時儲存的資料不會再傳送給伺服器,避免頻寬浪費。

localstorage儲存方法(sessionstorage類似)

localstorage.name =』vanida;

localstorage[「name」]=』vanida』;

localstorage.setitem(「name」,」vanida」);

//這三種設定值方式是一樣的;

localstorage獲取值方法

var name = localstorage[「name」]

var name= localstorage.name

var name= localstorage.getitem(「name」);

//這三種獲取值方式是一樣的;

localstorage清除特定值方法

//清除name的值

localstorage.removeitem(「name」);

localstorage.name=」;

localstorage清除所有值方法

localstorage.clear()

localstorage只能儲存字串,如果需要儲存物件,首先要轉化為字串。利用json.stringify();

var person = ;

localstorage.setitem(「person」,json.stringify(person));

// localstorage.person=」」

注意:json.stringify()中不要忘了「i」,stringify而不是stringfy!

然後取出person的物件你可以用json.parse();

person = json.parse(localstorage.getitem(「person」));

下面是單個簡單的物件(陣列類似)存貯,不考慮其他的多個的情況

var obj = ; 

var str = json.stringify(obj);

//存入

sessionstorage.obj = str;

//讀取

str = sessionstorage.obj;

//重新轉換為物件

obj = json.parse(str);

資料本地儲存方法

儲存到本地的資料型別有 陣列,字典,字串,物件型別的 1 字串的本地儲存 nsstring str dsadasd nsarray arr nssearchpathfordirectoriesindomains nslibrarydirectory,nsuserdomainmask,yes nsst...

JS 本地儲存

隨著網際網路的快速發展,基於網頁的應用越來越普遍,同時也變的越來越複雜,為了滿足各種各樣的需求,會經常性在本地儲存大量的資料,html5規範提出了相關解決方案。1 資料儲存在使用者瀏覽器中 2 設定 讀取方便 甚至頁面重新整理不丟失資料 3 容量較大,sessionstorage約5m locals...

本地儲存的幾種方式

一 cookie cookie算是比較早的技術,最初是為了記錄http的狀態,提高訪問速度。cookie是伺服器 種植 在客戶端的key value形式文字檔案。但同時客戶端也能操作cookie。特點 大小 cookie的大小限制在4k。每個網域名稱下cookie的個數現在在20個。在客戶端請求伺服...