HTML5 web 存儲:HTML5 提供了兩種在客戶端存儲數據的新方式:localStorage 和 sessionStorage ,二者都是僅在客戶端(即瀏覽器)中保存,不參與和服務器的通訊。web
早些時候,本地存儲使用的是 cookie,。可是 cookie 不適合大量數據的存儲,後來 HTML5 提供了 localStorage 和 sessionStorage Web,這些數據不會被保存在服務器上,它也能夠存儲大量的數據,而不影響網站的性能。數據以鍵/值對存在且只容許該網頁訪問使用。瀏覽器
用於臨時保存同一窗口(或標籤頁)的數據,在關閉瀏覽器或該標籤頁以後就會刪除這些數據。服務器
無論是 localStorage,仍是 sessionStorage,可以使用的API都相同,經常使用的有以下幾個(下面以localStorage爲例):cookie
當咱們想在 localStorage 和 sessionStorage 中存儲對象時,能夠先用 JSON.stringify(obj) 方法將對象轉換爲字符串,而後進行存儲。要想將值做爲對象輸出能夠用 JSON.parse(str) 方法將字符串轉換爲對象。session
共同點:性能
都是保存在本地瀏覽器端。網站
區別:spa
cookie數據始終在同源的http請求中攜帶(即便不須要),即cookie在瀏覽器和服務器間來回傳遞;cookie數據還有路徑(path)的概念,能夠限制cookie只屬於某個路徑下。而sessionStorage和localStorage不會自動把數據發給服務器,僅在本地保存。對象
存儲大小限制不一樣:cookie數據不能超過4k,同時由於每次http請求都會攜帶cookie,因此cookie只適合保存很小的數據,如會話標識。sessionStorage和localStorage 雖然也有存儲大小的限制,但比cookie大得多,能夠達到5M或更大。索引
數據有效期不一樣:sessionStorage僅在當前標籤頁關閉前有效,當該標籤頁關閉後數據也會被刪除;localStorage:持久化的本地存儲,保存的數據沒有過時時間,直到手動去除;cookie只在設置的cookie過時時間以前一直有效,即便窗口或瀏覽器關閉。