如何获得浏览器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:。

时间: 2024-12-26 07:22:19

如何获得浏览器localStorage的剩余容量的相关文章

查看源代码查找获取sd卡剩余容量的代码

下载android源码,找到app下的Settings应用源码,导入Settings项目(android项目源码) 查找“可用空间”得到 <string name="memory_available" msgid="418542433817289474">"可用空间"</string> 查找"memory_available",得到 <Preference android:key="me

zabbix 添加磁盘剩余容量监控方法

1.新建监控模板 Configuration--Templates--Create template 在Template name中输入disk space 50Gb 然后,保存即可. 2.新建Items Name为The free disk space is less than 50Gb key为:vfs.fs.size[/data,free] 保存即可 3.创建Triggers Trigger的名字为The free disk space is less than 50Gb Expressi

localStorage和sessionStorage火狐浏览器和其他高级浏览器的区别

例子: <script>window.onload=function(){ var oSetData = document.getElementById('setData'); var oGetData = document.getElementById('getData'); oSetData.onclick=function(){ if(window.localStorage){ console.log('支持'); localStorage.date1 = '{"content

localStorage 存满了怎么办?

先来几道面试题 1.a.meituan.com 和 b.meituan.com 这两个域能够共享同一个 localStorage 吗? 2.在 webview 中打开一个页面:i.meituan.com/home.html,点击一个按钮,调用 js 桥打开一个新的 webview:i.meituan.com/list.html,这两个分属不同 webview 的页面能共享同一个 localStorage 吗? 3.如果 localStorage 存满了,再往里存东西,或者要存的东西超过了剩余容量

[开源]jquery-ajax-cache:快速优化页面ajax请求,使用localStorage缓存请求

项目:jquery-ajax-cache 地址:https://github.com/WQTeam/jquery-ajax-cache     最近在项目中用到了本地缓存localStorage做数据的缓存. 1.简单说下localStorage localStorage和cookies相比,在浏览器中存储的容量更大.另外最大的特点是不会附带在http请求中传给后台,不会像cookies一样导致http头部变大影响传输性能.基于这个原因,localStorage适合缓存一些常用的数据,无需平凡的

df查询磁盘容量

df :列出文件系统的整体磁盘使用量 df主要读取的数据几乎都是针对整个文件系统的,因此读取的范围主要实在super block内的信息.在结果中要注意根目录的剩余容量,因为所有的数据都是由根目录衍生出来的,当根目录剩余容量为0时,那系统就会出现问题了. df常用参数:(df后面不跟目录或文件名时,则表示查询所有文件系统的容量) df [-ahikHTm] [目录/文件名] -a:列出所有的文件系统,包括系统特有的 /proc等文件系统 -k:以KB的容量显示各文件系统 -m:以MB的容量显示各

RK平台RAM和ROM容量计算

RK平台RAM和ROM容量计算 RAM 简介 1 RAM 实际容量的计算 2 RAM 标称容量的计算 ROM 简介 1 ROM究竟指什么 2 Nandflash 实际容量的计算 21 方式一使用sys文件系统计算ROM容量 22 方式二使用proc文件系统计算ROM容量 3 Nandflash 标称容量的计算 再说点什么 RK平台RAM和ROM容量计算 1. RAM 简介 RAM(random access memory),随机存取存储器,又称作"随机存储器",对于Android设备来

安卓读取SD卡的容量

在开发中,我们经常会用到SD卡,那么在对SD卡进行读写的时候,我们经常需要判断SD卡的剩余容量是否足够.因此,这次我们来写写获取SD卡容量的程序. 该注意的地方,我都在程序里面有注明了.看程序基本就懂了哈. 先来看看运行结果截图吧. 布局文件 activity_main.xml <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://sche

磁盘与目录的容量[转自vbird]

磁盘与目录的容量 现在我们知道磁盘的整体数据是在 superblock 区块中,但是每个各别文件的容量则在 inode 当中记载的. 那在文字接口底下该如何叫出这几个数据呢?底下就让我们来谈一谈这两个命令: df:列出文件系统的整体磁盘使用量:du:评估文件系统的磁盘使用量(常用在推估目录所占容量) df [[email protected] ~]# df [-ahikHTm] [目录或文件名] 选项与参数: -a :列出所有的文件系统,包括系统特有的 /proc 等文件系统: -k :以 KB