jquery本地存儲(chǔ)

參考:http://www.itdecent.cn/p/bc7237840937
https://www.cnblogs.com/cwp-bg/p/7695976.html

背景:在開發(fā)中,從1.html上直接跳轉(zhuǎn)到2.html,需要將中文帶過去并且在2.html上用到這個(gè)參數(shù),但是參數(shù)通過url帶過去到時(shí)候亂碼了,無法直接使用,就想能否不通過url直接將參數(shù)帶過去,而是使用本地存儲(chǔ)來存取參數(shù)。

我用到的方法是:


//存入本地:

localStorage.setItem("test", "123456");

//獲取參數(shù):

localStorage.getItem("test");

這里用到的是localStorage存儲(chǔ)在本地

一、localStorage 存儲(chǔ)在本地

容量為5M或者更大,不會(huì)在請求時(shí)候攜帶傳遞,在所有同源窗口中共享,數(shù)據(jù)一直有效,除非人為刪除,可作為長期數(shù)據(jù)。


//存入本地
localStorage.setItem("test", "123456");
  //或者用下面的寫法
localStorage.test='123456';

//獲取參數(shù)
localStorage.getItem("test");
  //或者用下面的寫法
localStorage.test

//數(shù)據(jù)是有排序的,后加入的角標(biāo)靠前,最后加入的角標(biāo)為0
//獲取第一個(gè)鍵,按角標(biāo)獲取
localStorage.key(0);
//獲取最后一個(gè)鍵
localStorage.key("");
//獲取數(shù)據(jù)的長度
localStorage.length;

//刪除
localStorage.removeItem("test");

//清空
localStorage.clear();//將所有保存的數(shù)據(jù)刪除

注意點(diǎn):
1、localStorage數(shù)據(jù)不需要依賴服務(wù)器環(huán)境訪問,可以直接在本地文件訪問;
2、不需要額外的文件支持。
3、同源窗口指的是同一個(gè)域名下或者是index.html所在的文件夾下的文件路徑
4、localStorage相當(dāng)于將數(shù)據(jù)保存在磁盤,是永久的,但是其針對的是固定的域名下的文件,打開其他的域名下的網(wǎng)頁,localStorage不會(huì)顯示。

本地存儲(chǔ)還有另外兩種方法

二、cookie 存儲(chǔ)在本地

容量最大4k,在同源的http請求時(shí)攜帶傳遞,損耗帶寬,可設(shè)置訪問路徑,只有此路徑及此路徑的子路徑才能訪問此cookie,在設(shè)置的過期時(shí)間之前有效。


//寫cookie
$.cookie('mycookie','123',{expires:7,path:'/'});
//cookie的設(shè)置有三個(gè)參數(shù),第一為設(shè)置數(shù)據(jù)的鍵,第二個(gè)為設(shè)置數(shù)據(jù)的值,expires表示有效時(shí)間,單位為天,path為訪問路徑,"/"表示當(dāng)前文件路徑,在網(wǎng)站中表示根目錄。

//jquery 獲取cookie
$.cookie('mycookie');
//刪除cookie,傳遞null值
$.cookie("mycookie", null});

注意點(diǎn):
1、cookie的訪問需要服務(wù)器環(huán)境,直接在本地文件訪問無效;
2、cookie的訪問和設(shè)置需要導(dǎo)入jquery.cookie.js文件;
3、瀏覽器對每一個(gè)訪問的地址下可添加的cookie是有限制的;同時(shí)每個(gè)瀏覽器可添加的cookie個(gè)數(shù)也存在限制。
4、如果不設(shè)置路徑,默認(rèn)情況下只有設(shè)置cookie的網(wǎng)頁才可以訪問此cookie;如果想網(wǎng)站的網(wǎng)頁可以共享cookie,將路徑設(shè)為根目錄。
5、cookie就相當(dāng)于一個(gè)能存儲(chǔ)數(shù)據(jù)的微型本地?cái)?shù)據(jù)庫,"mycookie"相當(dāng)于每條數(shù)據(jù)的key。

三、sessionStorage 存儲(chǔ)在本地

容量為5M或者更大,不會(huì)在請求時(shí)候攜帶傳遞,在同源的當(dāng)前窗口關(guān)閉前有效。

//寫入
sessionStorage.setItem('username','123456');
  //或者
sessionStorage.username;

//讀取
sessionStorage.getItem("username");
  //或者
sessionStorage.username;

//數(shù)據(jù)是有排序的,后加入的角標(biāo)靠前,最后加入的角標(biāo)為0
//獲取第一個(gè)鍵,按角標(biāo)獲取
sessionStorage.key(0);
//獲取最后一個(gè)鍵
sessionStorage.key("");
//獲取數(shù)據(jù)的長度
sessionStorage.length;

//刪除
sessionStorage.removeItem("username");

//清空
sessionStorage.clear();//將所有保存的數(shù)據(jù)刪除


注意點(diǎn):
1、sessionStorage同樣不需要再服務(wù)器的環(huán)境下運(yùn)行;
2、不需要額外的文件支持;
3、sessionStorage數(shù)據(jù)設(shè)置后即使頁面進(jìn)行重載也不會(huì)清除;但當(dāng)該窗口關(guān)閉后,里面的數(shù)據(jù)就會(huì)清除,再打開沒有數(shù)據(jù)。相當(dāng)于將數(shù)據(jù)保存在內(nèi)存中。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容