幾種瀏覽器存儲數據的方式


需求:記憶選中的選項,或許默認是東莞倉,

 

 

      //記住選擇的倉庫
      rememberWh(whParams){
          let key = this.$route.name + ':whSelected'
          localStorage.setItem(key, JSON.stringify(whParams))
      },
      //設置倉庫
      setWh(){
          let key = this.$route.name + ':whSelected'
          let whInfo = localStorage.getItem(key);
          let that = this
          if(whInfo!=null){
              let wh = JSON.parse(whInfo);
              this.$nextTick(() => {
                  that.form.setFieldsValue({
                      whId: wh.whId,
                  })
              })
          }
      },
 

瀏覽器端存儲數據的用途很廣泛,比如在保存用戶信息、存儲個性化設置信息、保存某種狀態或是資料等方面都會用到。

其中方法主要有三種:cookie、sessionStorage、localStorage。下面主要討論一下我在學習過程中發現這三者的區別。

1.是否與服務器端交互:

cookie數據始終在同源的http請求中攜帶(即使不需要),即cookie在瀏覽器和服務器間來回傳遞;

而sessionStorage和localStorage不會自動把數據發給服務器,僅在本地保存。(每台電腦只會默認/記住本地選擇的,因為不請求服務器)

2.存儲大小限制:

cookie存儲的數據不能超過4k,同時因為每次http請求都會攜帶cookie,所以cookie只適合保存很小的數據,比如會話標識;

sessionStorage和localStorage 雖然也有存儲大小的限制,但比cookie大得多,可以達到5M或更大。

3.數據有效期不同:

sessionStorage僅在當前瀏覽器窗口關閉或刷新前有效,需要持久保存的數據自然也就不可能使用sessionStorage;

localStorage保存數據始終有效,窗口或瀏覽器關閉也一直保存,因此可用作持久保存數據;

cookie只在開發人員設置的有效期時間之前一直有效,即使窗口或瀏覽器關閉。

4.作用域不同:

sessionStorage在不同的瀏覽器窗口中不能共享,即使是同源頁面;

localStorage 在所有瀏覽器的同源窗口中都是共享的;

cookie也是在所有同源窗口中都是共享的。


免責聲明!

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



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