zoukankan      html  css  js  c++  java
  • 如何获得浏览器localStorage的剩余容量

    一、如何获取localStorage的剩余容量

    在H5大行其道的今天,localStorage(本地存储)对每一个前断攻城师来说都不太陌生。同时localStorage也给我们带来了极大的便利,不用于cookies的小家子气,localStorage的存储量还是很客观的。

    由于浏览器的差异性,导致我们需要对localStorage中的内容做出一部分取舍。而根据目前的市场上浏览器对loaclStorage的兼容性来看,最佳的大小是2.5M左右。如何得到localStorage的容量大小,大概接触过localStorage都会遇到的这么一个问题。

    localStorage 中存储的是字符串,根据这一条件,我们可以通过取出所有的localStorage的内容,而其长度就是大小。具体代码如下:

     1 (function(){
     2     if(!window.localStorage) {
     3         console.log('浏览器不支持localStorage');
     4     }
     5     var size = 0;
     6     for(item in window.localStorage) {
     7         if(window.localStorage.hasOwnProperty(item)) {
     8             size += window.localStorage.getItem(item).length;
     9         }
    10     }
    11     console.log('当前localStorage剩余容量为' + (size / 1024).toFixed(2) + 'KB');
    12 })()

    二、如何获取localStorage最大容量

    通过上面的分析,其实思路基本是一样的,都是通过字符长度来判断。

     1  (function() {
     2    if(!window.localStorage) {
     3    console.log('当前浏览器不支持localStorage!')
     4    }    var test = '0123456789';
     5    var add = function(num) {
     6      num += num;
     7      if(num.length == 10240) {
     8        test = num;
     9        return;
    10      }
    11      add(num);
    12    }
    13    add(test);
    14    var sum = test;
    15    var show = setInterval(function(){
    16       sum += test;
    17       try {
    18        window.localStorage.removeItem('test');
    19        window.localStorage.setItem('test', sum);
    20        console.log(sum.length / 1024 + 'KB');
    21       } catch(e) {
    22        console.log(sum.length / 1024 + 'KB超出最大限制');
    23        clearInterval(show);
    24       }
    25    }, 0.1)
    26  })()

    自己写了一个检测浏览器localStorage的最大容量的页面,麻雀虽小,但五脏俱全 :lol:。

  • 相关阅读:
    array_map()与array_shift()搭配使用 PK array_column()函数
    Educational Codeforces Round 8 D. Magic Numbers
    hdu 1171 Big Event in HDU
    hdu 2844 poj 1742 Coins
    hdu 3591 The trouble of Xiaoqian
    hdu 2079 选课时间
    hdu 2191 珍惜现在,感恩生活 多重背包入门题
    hdu 5429 Geometric Progression 高精度浮点数(java版本)
    【BZOJ】1002: [FJOI2007]轮状病毒 递推+高精度
    hdu::1002 A + B Problem II
  • 原文地址:https://www.cnblogs.com/MonkeyKingK/p/5499831.html
Copyright © 2011-2022 走看看