如何获得浏览器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:。
如何获得浏览器localStorage的剩余容量的更多相关文章
- 检测页面的localstorage剩余容量
首先用了JSON.stringify(localStorage).length得出你当前页面的localstorage所使用的字符数量current_num. 然后你再去http://arty.nam ...
- 查看源代码查找获取sd卡剩余容量的代码
下载android源码,找到app下的Settings应用源码,导入Settings项目(android项目源码) 查找“可用空间”得到 <string name="memory_av ...
- Windows c(++)获取磁盘剩余容量
头文件 #include <windows.h> #include <wtypes.h> 函数 GetDiskFreeSpaceExA 获取剩余可用空间 /// 得到盘符, 例 ...
- 利用浏览器LocalStorage缓存图片,视频文件
文章路径:https://hacks.mozilla.org/2012/02/saving-images-and-files-in-localstorage/
- 【ASM】查看ASM磁盘组剩余容量和总容量
col total_size for a10; col free_size for a20; select name,total_mb/1024 || 'G' as total_size , free ...
- localStorage和sessionStorage火狐浏览器和其他高级浏览器的区别
例子: <script>window.onload=function(){ var oSetData = document.getElementById('setData'); var o ...
- localStorage 存满了怎么办?
先来几道面试题 1.a.meituan.com 和 b.meituan.com 这两个域能够共享同一个 localStorage 吗? 2.在 webview 中打开一个页面:i.meituan.co ...
- 浏览器本地存储(browser-storage,HTML5-localStorage > IE-UserData > Cookie)
https://www.baidufe.com/component/browser-storage/index.html BrowserStorage是浏览器本地存储的一个解决方案,存储优先级依次为: ...
- [开源]jquery-ajax-cache:快速优化页面ajax请求,使用localStorage缓存请求
项目:jquery-ajax-cache 地址:https://github.com/WQTeam/jquery-ajax-cache 最近在项目中用到了本地缓存localStorage做数据 ...
随机推荐
- C++学习笔记13:运算符重载(赋值操作符2)
移动语义 完成所有权的移交,当拷贝构造和赋值构造时,目标对象的所有权必须移交给我们的新的对象,原始对象将丧失所有权,_p指针将不再指向原来的那个数组: 左值与右值 C原始定义 左值:可以出现在赋值号的 ...
- 多态(RAW)
函数重写overwrite:当子类提供了和父类同名的虚函数时,称之为函数重写,函数的返回值类 函数名 参数列表必须完全相同 名字隐藏namehide:当子类提供了和父类同名的数据时 叫名字隐藏 函数重 ...
- 通过rsync+inotify实现数据实时备份同步
一.环境描述 测试环境 需求:服务器A与服务器B为主备服务模式,需要保持文件一致性,现采用sersync基于rsync+inotify实现数据实时同步 环境描述: 主服务器172.26.7.50 ,从 ...
- Redis-持久化
Redis 持久化 Redis 提供了不同持久化范围的选项: RDB 持久化以指定的时间间隔执行数据集的即时点(point-in-time)快照. AOF 持久化在服务端记录每次收到的写操作,在服务器 ...
- 05Mybatis_入门程序——根据id查询用户
这篇文章我们来做一个入门的案例: 建表: /* SQLyog v10.2 MySQL - 5.1.72-community : Database - mybatis ***************** ...
- jQuery 制作逼真的日历翻转效果的倒计时
在开发中,一些功能需要用到倒计时,例如最常见的活动开始.结束的倒计时.使用最流行的 JavaScript 库来制作这个效果很简单.下面就是一个 jQuery 制作的逼真的日历翻转效果的倒计时功能. 在 ...
- Sequence.js 实现带有视差滚动特效的图片滑块
Sequence.js 功能齐全,除了能实现之前分享过的现代的图片滑动效果,还可以融合当前非常流行的视差滚动(Parallax Scrolling)效果.让多层背景以不同的速度移动,形成立体的运动效果 ...
- 携带cookie进行数据请求
前端进行数据请求有:普通的ajax(json)请求,jsop跨域请求,cors跨域请求,fetch请求...PC端这些请求方式中,普通的ajax(json)请求和jsop跨域请求是默认携带cookie ...
- ionic + cordova 使用 cordova-gallery-api 获取本地相册所有图片
cordova-gallery-api 插件定义一个全局galleryapi对象,提供查询图库相册的方法 安装 cordova-gallery-api: cordova plugin add http ...
- SharePoint基于windows验证的如何通过组策略实现IE自动以当前域账号登录SP站点
通过组策略实现IE自动以当前域账号登录SP站点 1. 在运行中运行MMC,启动"组策略对象编辑器". 如下图: 找到组策略如下图: 找到域 点右键编辑 找到如下图: 找到[计算机配 ...