localStorage 真正的本地緩存。(sessionStorage、cookie)


window.localStorage:

  (翻譯:窗口的本地存儲)

  體積5M,據說未來還會增大

  生命周期,只要不清都在

  在localStorage中只能以字符串的形式進行保存,所以在存入localStorage之前,我們需要將json格式的數據進行轉化成string格式。

獲取對象:

var storage=localStorage;  // 全局屬性,所以 window. 可以省略

三種寫入方式:

  localStorage.setItem( ' key ' , ' value ‘ ) // 對象需要用JSON.stringify(obj) 包起來,

    //寫入a字段     
    storage["a"]=1;     
    //寫入b字段     
    storage.b=1;     
    //寫入c字段     
    storage.setItem("c",3);

三種讀取方式:

  localStorage.getItem( ' key ' )

    //第一種方法讀取     
    var a=storage.a;     console.log(a);     
    //第二種方法讀取     
    var b=storage["b"];  console.log(b);     
    //第三種方法讀取     
    var c=storage.getItem("c");

刪除:

  localStorage.removeItem( ' key ' )

清空:

  localStorage.clear( )

onstorage( ) 事件:

  當本地緩存修改的時候,自己不觸發,兄弟(旁邊)頁面觸發

sessionStorage:

  sessionStorage 的所有方法和 localStorage 一樣。

  sessionStorage 用於本地存儲一個會話(session)中的數據,這些數據只有在同一個會話中的頁面才能訪問。並且當會話結束后(關閉頁面)數據也隨之銷毀。因此 sessionStorage 不是一種持久化的本地存儲,僅僅是會話級別的存儲。只允許同一窗口訪問。

  而 localStorage 用於持久化的本地存儲,除非主動刪除數據,否則數據是永遠不會過期的。同源可以讀取並修改 localStorage 數據。

Cookie、 sessionStorage、localStorage 的異同

特性 Cookie localStorage sessionStorage
數據的生命期 一般由服務器生成,可設置失效時間。如果在瀏覽器端生成Cookie,默認是關閉瀏覽器后失效 除非被清除,否則永久保存 僅在當前會話下有效,關閉頁面或瀏覽器后被清除
存放數據大小 4K左右 一般為5MB
與服務器端通信 每次都會攜帶在HTTP頭中,如果使用cookie保存過多數據會帶來性能問題 僅在客戶端(即瀏覽器)中保存,不參與和服務器的通信
易用性 需要程序員自己封裝,源生的Cookie接口不友好 源生接口可以接受,亦可再次封裝來對Object和Array有更好的支持

 

2018-12-14


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM