數(shù)據(jù)存儲

Storage實例對象
sessionStorage:為每一個給定的域維持一個獨立的存儲空間,該存儲空間在頁面會話期間可用,即只要瀏覽器處于打開狀態(tài),包括頁面重新加載和回復(fù)
localStorage:在瀏覽器關(guān)閉后,重新打開數(shù)據(jù)仍然存在。(其他跟sessionStorage相同)

StorageEvent:
當(dāng)Storage發(fā)生變化時,和它同域的、在其他Tab中打開的頁面會收到StorageEvent事件。

<!DOCTYPE html>
<html>
<head> 
    <meta charset="utf-8">
    <title>Storage Event</title>
</head>
<body>
<input id="setNewDate" type="button" value="Set New Date" />
<div id="now"></div>
<script>
//監(jiān)聽Storage事件
  window.addEventListener('storage', function (evt){
  console.log(evt.key, evt.newValue, evt.oldValue, evt.storageArea, evt.url);  },false);
  function setNewDate() {
      var newDate = new Date().toString();
      localStorage.setItem('now',newDate);
      document.getElementById('now').innerHTML = newDate; 
}
//監(jiān)聽按鈕點擊事件
document.getElementById('setNewDate').addEventListener('click', setNewDate);
</script>
</body>
</html>

Storage 使用時注意點:

1.Storage:兼容性檢測方法:

if (typeof localStorage !== 'undefined') {
  // do something
} else {
  console.log('您的瀏覽器不支持 localStorage');
}
if (typeof sessionStorage !== 'undefined') {
 //do something
}  else {
    console.log('您的瀏覽器不支持 sessionStorage');
}

2.Storage:同步特性
Storage的所有方法都試同步的,意味著它們會阻塞主頁面的渲染以及其他操作。
3.Storage:容量有限制
由于localStorge中的數(shù)據(jù)是要保存到用戶電腦的磁盤上的,如果不受限,則攻擊者可以寫惡意代碼將用戶磁盤塞滿。

Storage最初設(shè)計目的:
為了解決在不同窗口中同事操作多種事務(wù)的問題,Cookile不能很好的解決這個問題。

Storage使用場景(不保存敏感數(shù)據(jù)):
localStorage:可以把一些非必須的、但又能提升用戶體驗的功能數(shù)據(jù)保存在localStorage中,最常見的是用戶自定義設(shè)置的信息
sessionStorage:適合保存某次使用過程中,只會用到一次的功能數(shù)據(jù)。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容