localStorage、sessionStorage、Cookie的區別及用法
webstorage
webstorage是本地儲存,儲存在客戶端,包括localStorage和sessionStorage。
localStorage
localStorage生命週期是永久,這意味著除非使用者顯示在瀏覽器提供的UI上清除localStorage資訊,否則這些資訊將永遠存在。存放資料大小為一般為5MB,而且它僅在客戶端(即瀏覽器)中儲存,不參與和伺服器的通訊。
sessionStorage
sessionStorage僅在當前會話下有效,關閉頁面或瀏覽器後被清除。存放資料大小為一般為5MB,而且它僅在客戶端(即瀏覽器)中儲存,不參與和伺服器的通訊。源生介面可以接受,亦可再次封裝來對Object和Array有更好的支援。
localStorage和sessionStorage使用時使用相同的API:
localStorage.setItem("key","value");//以“key”為名稱儲存一個值“value”
localStorage.getItem("key");//獲取名稱為“key”的值
localStorage.removeItem("key");//刪除名稱為“key”的資訊。
localStorage.clear();//清空localStorage中所有資訊
簡單的舉個例子來了解一下他們的用法
仿一下京東官網頂部的廣告關閉,效果為第一次進入官網會出現廣告,然後點選關閉,重新整理網頁不會再顯示廣告,但是當清除localStorage存入的資料,重新整理網頁會再顯示廣告。
html程式碼
<div class="header">
<div class="header-a">
<a href=""></a>
<i class="close">x</i>
</div>
</div>
css程式碼
.header{
width:100%;
height:80px;
background:#000;
}
.header-a{
width:1190px;
margin:0 auto;
position:relative;
background:url("images/1.jpg") no-repeat;
}
.header-a a{
width:100%;
height:80px;
display:block;
}
.close{
cursor:pointer;
color:#fff;
position:absolute;
top:5px;
right:5px;
background:rgb(129, 117, 117);
width: 20px;
text-align: center;
line-height: 20px;
}
js程式碼
//localStorage方法
<script src="../js/jquery.min.js"></script>
function haxi(){
//判斷localStorage裡有沒有isClose
if(localStorage.getItem("isClose")){
$(".header").hide();
}else{
$(".header").show();
}
//點選關閉隱藏圖片存取資料
$(".close").click(function(){
$(".header").fadeOut(1000);
localStorage.setItem("isClose", "1");
})
}
haxi();
作用域不同
不同瀏覽器無法共享localStorage或sessionStorage中的資訊。相同瀏覽器的不同頁面間可以共享相同的 localStorage(頁面屬於相同域名和埠),但是不同頁面或標籤頁間無法共享sessionStorage的資訊。這裡需要注意的是,頁面及標 籤頁僅指頂級視窗,如果一個標籤頁包含多個iframe標籤且他們屬於同源頁面,那麼他們之間是可以共享sessionStorage的。
Cookie
生命期為只在設定的cookie過期時間之前一直有效,即使視窗或瀏覽器關閉。 存放資料大小為4K左右 。有個數限制(各瀏覽器不同),一般不能超過20個。與伺服器端通訊:每次都會攜帶在HTTP頭中,如果使用cookie儲存過多資料會帶來效能問題。但Cookie需要程式設計師自己封裝,源生的Cookie介面不友好(http://www.jb51.net/article/6…
)。
js程式碼
//Cookie方法
<script src="../js/cookie.js"></script>//Cookie函式自己封裝引入
function haxi(){
if(getCookie("isClose")){
$(".header").hide();
}else{
$(".header").show();
}
$(".close").click(function(){
$(".header").fadeOut(1000);
setCookie("isClose", "1","s10");
})
}
haxi();
cookie的優點:具有極高的擴充套件性和可用性
1.通過良好的程式設計,控制儲存在cookie中的session物件的大小。
2.通過加密和安全傳輸技術,減少cookie被破解的可能性。
3.只有在cookie中存放不敏感的資料,即使被盜取也不會有很大的損失。
4.控制cookie的生命期,使之不會永遠有效。這樣的話偷盜者很可能拿到的就 是一個過期的cookie。
cookie的缺點:
1.cookie的長度和數量的限制。每個domain最多隻能有20條cookie,每個cookie長度不能超過4KB。否則會被截掉。
2.安全性問題。如果cookie被人攔掉了,那個人就可以獲取到所有session資訊。加密的話也不起什麼作用。
3.有些狀態不可能儲存在客戶端。例如,為了防止重複提交表單,我們需要在服務端儲存一個計數器。若吧計數器儲存在客戶端,則起不到什麼作用。
相關文章
- cookie、sessionStorage、localStorage的區別?CookieSession
- localStorage,sessionStorage和cookie的區別及使用SessionCookie
- Cookie、localStorage 和 sessionStorage 的區別及應用例項CookieSession
- localStorage、sessionStorage、Cookie的SessionCookie
- 理解cookie、session、localStorage、sessionStorage的關係與區別CookieSession
- cookie、sessionStorage、localStorageCookieSession
- cookie, sessionStorage, localStorageCookieSession
- sessionStorage和localStorage的區別Session
- localStorage與sessionStorage 區別Session
- localStorage和sessionStorage區別Session
- 【基礎梳理】cookie、session、sessionStorage、localStorage之間的區別及應用場景CookieSession
- Cookie LocalStorage SessionStorage對比CookieSession
- cookies sessionStorage和localstorage區別CookieSession
- 詳說 Cookie, LocalStorage 與 SessionStorageCookieSession
- localStorage 與 sessionStorage / cookie 和 sessionSessionCookie
- cookie,session,sessionStorage,localStotage的區別CookieSession
- Cookie && Session && localStorage && sessionstorage && HTTP快取CookieSessionHTTP快取
- 請描述一下cookies、sessionStorage和localStorage的區別?CookieSession
- 一文搞懂Session和Cookie的用法及區別SessionCookie
- 前端存貯全家桶--cookie、sessionStorage、localStorage、和indexedDB重點合集前端CookieSessionIndex
- Yet another intro for localStorage and sessionStorageSession
- 深入瞭解瀏覽器儲存:對比Cookie、LocalStorage、sessionStorage與IndexedDB瀏覽器CookieSessionIndex
- web本地儲存(localStorage、sessionStorage)WebSession
- sessionStorage 用法Session
- localStorage 用法
- localStorage和sessionStorage儲存封裝Session封裝
- localStorage和sessionStorage原型方法新增Session原型
- localStorage和SessionStorage,Application,Cache快取SessionAPP快取
- ajax與jsonp的區別及用法JSON
- Gerrit的用法及與gitlab的區別Gitlab
- 移動Web——localStorage,sessionStorage,Storage事件監聽WebSession事件
- CSS中的class與id區別及用法CSS
- session與cookie的區別SessionCookie
- cookie和session的區別CookieSession
- hive中round、floor、ceil區別及用法Hive
- H5本地儲存:sessionStorage和localStorageH5Session
- Linux中&&和&,|和||用法及區別詳解!Linux
- Python中threading的join和setDaemon的區別及用法[例子]Pythonthread