获取localStorage的使用容量和最大容量
(一)前言我们最近需要涉及一套前端缓存库, 主要对一些列表数据进行本地缓存, 避免二次进入页面空白时间太长,这里内嵌webview,持久缓存就需要使用localStorage。这里主要讲述怎么计算当前使用体积和剩余体积(二)最大容量<!DOCTYPE html><html lang="en"><head><meta charset="UTF-8">&
·
(一)前言
我们最近需要涉及一套前端缓存库, 主要对一些列表数据进行本地缓存, 避免二次进入页面空白时间太长,这里内嵌webview,持久缓存就需要使用localStorage。这里主要讲述怎么计算当前使用体积和剩余体积
(二)最大容量
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>容量</title>
</head>
<body>
<div class="total">
总数:
</div>
<button class="btn2">获取总数</button>
<hr />
<script>
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;
var 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();
})
</script>
</body>
</html>
点击获取后,得到结果如下
(三)剩余容量
<!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>

(四)结尾
当然涉及缓存离不开处理过期时间,这里推荐一个库,可以方便处理
lscache
更多推荐

所有评论(0)