cookie和sessionStorage和localStorage的區別

 

轉載:http://blog.csdn.net/xtzz92/article/details/51668644   (具體詳情請看鏈接原文章)html

 

sessionStorage和localStorage是html5 Web storage API 提供的html5

Web Storage 支持事件通知機制,能夠將數據更新的通知發送給監聽者。api

Web Storage 的 api 接口使用更方便。瀏覽器

Web Storage帶來的好處:緩存

  1. 減小網絡流量:一旦數據保存在本地後,就能夠避免再向服務器請求數據,所以減小沒必要要的數據請求,減小數據在瀏覽器和服務器間沒必要要地來回傳遞。
  2. 快速顯示數據:性能好,從本地讀數據比經過網絡從服務器得到數據快得多,本地數據能夠即時得到。再加上網頁自己也能夠有緩存,所以整個頁面和數據都在本地的話,能夠當即顯示。
  3. 臨時存儲:不少時候數據只須要在用戶瀏覽一組頁面期間使用,關閉窗口後數據就能夠丟棄了,這種狀況使用sessionStorage很是方便。

共同點:服務器

數據都是保存在瀏覽器端,而且是同源的。cookie

不一樣點:網絡

cookie數據始終在同源的http請求中攜帶(即便不須要),即cookie在瀏覽器和服務器間來回傳遞。而sessionStorage和localStorage不會自動把數據發給服務器,僅在本地保存。cookie數據還有路徑(path)的概念,能夠限制cookie只屬於某個路徑下。session

存儲大小限制也不一樣:性能

       cookie數據不能超過4k,同時由於每次http請求都會攜帶cookie,因此cookie只適合保存很小的數據,如會話標識。

       sessionStorage和localStorage 雖然也有存儲大小的限制,但比cookie大得多,能夠達到5M或更大。

數據有效期不一樣:

        sessionStorage:僅在當前瀏覽器窗口關閉前有效,天然也就不可能持久保持;

        localStorage:始終有效,窗口或瀏覽器關閉也一直保存,所以用做持久數據;

        cookie:只在設置的cookie過時時間以前一直有效,即便窗口或瀏覽器關閉。

做用域不一樣:

       sessionStorage不在不一樣的瀏覽器窗口中共享,即便是同一個頁面;sessionStorage是在同源的同學口(或tab)中,始終存在的數據。也就是說只要這個瀏覽器窗口沒有關              閉,即便刷新頁面或進入同源另外一頁面,數據仍然存在。關閉窗口後,sessionStorage即被銷燬。同時「獨立」打開的不一樣窗口,即便是同一頁面,sessionStorage對象也是不一樣          的。

       localStorage 在全部同源窗口中都是共享的;

       cookie 也是在全部同源窗口中都是共享的。

相關文章
相關標籤/搜索