问题:

  1、a.xxx.com和b.xxx.com这两个域能共享同一个localStorage吗

  2、在a.xxx.com/list.html页面中点击进入a.xxx.com/details.html中,这两个不同的页面能共享一个localStorage吗

  3、如果localStorage存满了,再往里存东西,或者要存的东西超过了剩余容量,会发生什么

答:

  1、同一个域名可以共享同一个localStorage,a.xxx.com和b.xxx.com是两个域名,不能共享

  2、可以。相当于同一个浏览器的不同页面,不同浏览器之间不能共享

  3、存不进去并报错

 

怎么避免localStorage存满的问题:

  1、划分域名。各域下的存储空间由各业务组统一规划使用

  2、跨页面传数据:考虑单页面应用、优先使用url传数据

  3、最后的方案:清掉之前的缓存(互相伤害)

 

获取localStorage已使用容量:

    getLocal(){
      if(!window.localStorage) console.log('浏览器不支持localStorage');
      let size = 0;
      for(let item in window.localStorage) {
        if(window.localStorage.hasOwnProperty(item)) {
          size += window.localStorage.getItem(item).length;
        }
      }
      console.log('当前localStorage已使用容量为' + (size / 1024).toFixed(2) + 'KB');
    }