1.關閉瀏覽器窗口的時候,數據也被清除; 2.在同一個窗口下數據是可以共享的
1.永久生效,除非手動清除; 2.可以多窗口共享
兩種存儲方式,只是前綴不同,調用的方法是一致的。 1.setItem(key,value)–設置存儲內容 eg: sessionStorage.setItem(‘test’,’content’) localStorage.setItem(‘test’,’content’) 2.getItem(key)讀取存儲內容 3.removeItem(key)刪除鍵值為key的存儲內容 4.cleaer()清空所有存儲內容 5.key(n)以索引值來獲取存儲內容
1.cookie的缺點 (1)http請求頭會帶著 (2)帶下4k (3)主Domain污染
2.主要區別: cookie數據始終在同源的http請求中攜帶(即使不需要),即cookie在瀏覽器和服務器間來回傳遞。而sessionStorage和localStorage不會自動把數據發給服務器,僅在本地保存。cookie數據還有路徑(path)的概念,可以限制cookie只屬于某個路徑下。存儲大小限制也不同,cookie數據不能超過4k,同時因為每次http請求都會攜帶cookie,所以cookie只適合保存很小的數據,如會話標識。sessionStorage和localStorage 雖然也有存儲大小的限制,但比cookie大得多,可以達到5M或更大。數據有效期不同,sessionStorage:僅在當前瀏覽器窗口關閉前有效,自然也就不可能持久保持;localStorage:始終有效,窗口或瀏覽器關閉也一直保存,因此用作持久數據;cookie只在設置的cookie過期時間之前一直有效,即使窗口或瀏覽器關閉。作用域不同,sessionStorage不在不同的瀏覽器窗口中共享,即使是同一個頁面;localStorage在所有同源窗口中都是共享的;cookie也是在所有同源窗口中都是共享的。
差異性:
相同點:都是存儲數據,存儲在web端,并且都是同源
不同點:
1.cookie 只有4K 小 并且每一次請求都會帶上cookie 體驗不好,浪費帶寬
2.session和local直接存儲在本地,請求不會攜帶,并且容量比cookie要大的 3.session 是臨時會話,當窗口被關閉的時候就清除掉 ,而 local永久存在,cookie有過期時間 4.cookie 和local都可以支持多窗口共享,而session不支持多窗口共享 但是都支持a鏈接跳轉的新窗口
參考:http://www.cnblogs.com/hynb/p/6037021.html
新聞熱點
疑難解答