請描述一下 cookies,sessionStorage 和 localStorage 的區別?

http://handyxuefeng.blog.163.com/blog/static/454521722013111714040259/html

http://book.51cto.com/art/201106/270499.htm
web

http://www.cnblogs.com/blackbird/archive/2012/06/18/2553718.html
數據庫

軟件編程但願經過一些手段來持久化的存儲一些有用的數據。對於網絡化編程,通常將這項任務交給了服務器端的數據庫或者瀏覽器端的cookie。隨着HTML5的出現,web開發又有了兩種選擇:Web Storage和Web SQL Database.編程

Web Storage有兩種形式:LocalStorage(本地存儲)和sessionStorage(會話存儲)。這兩種方式都容許開發者使用js設置的鍵值對進行操做,在在從新加載不一樣的頁面的時候讀出它們。這一點與cookie相似。
瀏覽器

1.與cookie不一樣的是:Web Storage數據徹底存儲在客戶端,不須要經過瀏覽器的請求將數據傳給服務器,所以x相比cookie來講可以存儲更多的數據,大概5M左右。服務器

2.LocalStorage和sessionStorage功能上是同樣的,可是存儲持久時間不同。cookie

    LocalStorage:瀏覽器關閉了數據仍然能夠保存下來,並可用於全部同源(相同的域名、協議和端口)窗口(或標籤頁),網絡

    sessionStorage:數據存儲在窗口對象中,窗口關閉後對應的窗口對象消失,存儲的數據也會丟失。session

注意:sessionStorage 均可以用localStorage 來代替,但須要記住的是,在窗口或者標籤頁關閉時,使用sessionStorage 存儲的數據會丟失。spa

三、使用 local storage和session storage主要經過在js中操做這兩個對象來實現,分別爲window.localStorage和window.sessionStorage. 這兩個對象均是Storage類的兩個實例,天然也具備Storage類的屬性和方法。

 

Storage類的相關成員以下:

成員名 方法參數 描述
length 屬性 獲取存儲數據的條數

key(n)    

n:索引值 根據索引值,返回鍵名
getItem(key) key:鍵名 根據鍵名,獲取數據值
setItem(key,value) key:鍵名 value:鍵值 根據鍵名和鍵值設置數據項,若是鍵名已經存在,則覆蓋值
removeItem(key) key:鍵名 根據鍵名刪除一個數據項
clear() 清空當前的Storage對象

其用法:

參數設置很簡單,以下例:

localStorage.setItem('age', 40); 

訪問一個存儲的數據同樣很容易:

 = .getItem('age'); 

能夠這樣刪除一個特定的鍵值對:

localStorage.removeItem('age'); 

或者刪除全部的鍵值對:

localStorage.clear(); 

sessionStorage與頁面 js 數據對象的區別:

sessionStorage只要是同源的同學口(Tab)中,刷新頁面或者進入不一樣的頁面數據對象仍然被保存,也就是說只要瀏覽器窗口不關閉,加載頁面(同源)或刷新頁面,數據仍存在。

相關文章
相關標籤/搜索