cookie是服務器端提供給瀏覽器端的特殊信息,以文本的形式存儲在客戶端,每次請求時,都會攜帶cookie。 cookie被保存在內存中,生命週期隨瀏覽器的關閉而結束,這種cookie簡稱會話cookie。若是在瀏覽器中設置了cookie的過時時間,cookie會被保存在硬盤中,關閉瀏覽器後,cookie數據仍然存在,直到過時時間結束才消失。瀏覽器
sessionStorage和localStorage是在h5中引入的本地存儲機制,sessionStorage和localStorage中存儲的數據不會被髮送給服務器。服務器
localStorage生命週期是永久,這意味着除非用戶顯示在瀏覽器提供的UI上清除localStorage信息,不然這些信息將永遠存在。cookie
sessionStorage生命週期爲當前窗口或標籤頁,一旦窗口或標籤頁被永久關閉了,那麼全部經過sessionStorage存儲的數據也就被清空了。session
不一樣瀏覽器沒法共享localStorage或sessionStorage中的信息。相同瀏覽器的不一樣頁面間能夠共享相同的 localStorage(頁面屬於相同域名和端口),可是不一樣頁面或標籤頁間沒法共享sessionStorage的信息。這裏須要注意的是,頁面及標 籤頁僅指頂級窗口,若是一個標籤頁包含多個iframe標籤且他們屬於同源頁面,那麼他們之間是能夠共享sessionStorage的。函數
sessionStorage和localStorage的用法:spa
一、將數據存儲到storage:3d
sessionStorage.setItem("key","value");對象
localStorage.setItem("key","value");blog
或者生命週期
sessionStorage.key = "value";
localStorage.key = "value";
二、從storage中根據key取出value:
sessionStorage.getItem("key");
localStorage.getItem("key");
或者:
sessionStorage.key
localStorage.key
經過getItem或直接使用localStorage["key"]獲取到的信息均爲實際存儲的副本。
localStorage.key = {value1:"value1"};
localStorage.key.value1='a';
這裏是沒法對實際存儲的值產生做用的,下面的寫法也不能夠:
localStorage.getItem("key").value1="a";
三、從storage中刪除
sessionStorage.removeItem("key");
localStorage.removeItem("key");
四、清空storage
sessionStorage.clear();
localStorage.clear();
sessionStorage和localStorage中的值都是以字符串的形式存儲,可是咱們常常會遇到須要存儲對象的狀況,好比咱們如今須要將一個JSON對象的信息經過storage存儲下來,這時咱們須要藉助兩個函數:JSON.stringify()和JSON.parse()。
JSON.stringify(),將JSON對象解析爲字符串
JSON.parse(),將JSON格式的字符串解析爲對象
搭配上storage,一般是這麼用的:
var obj = {"Math":"95","Physics":"98"}; //聲明一個對象
sessionStorage.setItem("Score",JSON.stringify(obj)); //將JSON對象的字符串形式存儲到storage
var obj2 = JSON.parse(sessionStorage.getItem("Score")); //根據key取出值,並將值從新解析爲JSON對象