计算localStorage总量/剩余容量

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>容量</title>
</head>
<body>
<div class="use">
    使用:
</div>
<button class="btn1">获取使用</button>
<hr />
<div class="total">
    总数:
</div>
<button class="btn2">获取总数</button>
<button class="btn3">暂停总数</button>
<hr />
<script>
    function getUseSize() {
        var size = 0;
        for(item in window.localStorage) {
            if(window.localStorage.hasOwnProperty(item)) {
                size += window.localStorage.getItem(item).length;
            }
        }
        document.querySelector('.use').innerHTML = '使用:' +  (size / 1024).toFixed(2) + 'KB'
    }

    document.querySelector('.btn1').addEventListener('click', function () {
        getUseSize();
    })

    var timer
    function getTotalSize() {
        localStorage.clear();
        var test = '0123456789';
        var add = function(num) {
            num += num;
            if(num.length === 10240) {
                test = num;
                return;
            }
            add(num);
        }
        add(test);
        var sum = test;
        timer = setInterval(function(){
            sum += test;
            try {
                localStorage.removeItem('test');
                localStorage.setItem('test', sum);
                document.querySelector('.total').innerHTML = '总数:' +  sum.length / 1024 + 'KB'
            } catch(e) {
                alert(sum.length / 1024 + 'KB超出最大限制');
                clearInterval(timer);
            }
        }, 0.1)

    }

    document.querySelector('.btn2').addEventListener('click', function () {
        getTotalSize();
    })
    document.querySelector('.btn3').addEventListener('click', function () {
        clearInterval(timer);
    })

</script>
</body>
</html>

 

posted @ 2021-03-27 21:33  一路向北√  阅读(272)  评论(0编辑  收藏  举报

web应用开发&研究 -

业精于勤而荒于嬉。

工作,使我快乐。


Font Awesome | Respond.js | Bootstrap中文网