HTML5 本地存储的用法

简介: HTML5 的本地存储 API 中的 localStorage 与 sessionStorage 在使用方法上是相同的,区别在于 sessionStorage 在关闭页面后即被清空,而 localStorage 则会一直保存。

HTML5 的本地存储 API 中的 localStorage 与 sessionStorage 在使用方法上是相同的,区别在于 sessionStorage 在关闭页面后即被清空,而 localStorage 则会一直保存。我们这里以 localStorage 为例,简要介绍下 Html5 的本地存储,并针对如遍历等常见问题作一些示例说明。 localStorage 是 HTML5 本地存储的 API,使用键值对的方式进行存取数据,存取的数据只能是字符串。不同浏览器对该 API 支持情况有所差异,如使用方法、最大存储空间等。

1. localStorage API 基本使用方法

localStorage API 使用方法简单易懂,如下为常见的 API 操作及示例: 设置数据:localStorage.setItem(key,value); 示例:

for(var i=0; i<10; i++){
	localStorage.setItem(i,i);
}

获取数据:localStorage.getItem(key) 获取全部数据:localStorage.valueOf() 示例:

for(var i=0; i<10; i++){
	localStorage.getItem(i);
}

删除数据:localStorage.removeItem(key) 示例:

for(var i=0; i<5; i++){
	localStorage.removeItem(i);
}

清空全部数据:localStorage.clear() 获取本地存储数据数量:localStorage.length 获取第 N 个数据的 key 键值:localStorage.key(N)

2. 遍历 key 键值方法

for(var i=localStorage.length - 1 ; i >=0; i--){
	console.log('第'+ (i+1) +'条数据的键值为:' + localStorage.key(i) +',数据为:' + localStorage.getItem(localStorage.key(i)));
}

3. 存储大小限制测试及异常处理

3.1 数据存储大小限制测试

不同浏览器对 HTML5 的本地存储大小基本均有限制,一个测试的结果如下:

IE 9          > 4999995 + 5 = 5000000
firefox 22.0 > 5242875 + 5 = 5242880
chrome  28.0  > 2621435 + 5 = 2621440
safari  5.1   > 2621435 + 5 = 2621440
opera   12.15 > 5M (超出则会弹出允许请求更多空间的对话框)

测试代码参考:

<!DOCTYPE html>
<html>
<head>
<script>
	function log( msg ) {
	    console.log(msg);
	    alert(msg);
	}

	var limit;

	var half = '1'; //这里会换成中文再跑一遍
	var str = half;
	var sstr;

	while ( 1 ) {
	    try {
	        localStorage.clear();
	        str += half;
	        localStorage.setItem( 'cache', str );
	        half = str;
	    } catch ( ex ) {
	        break;
	    }
	}

	var base = str.length;
	var off = base / 2;
	var isLeft = 1;

	while ( off ) {
	    if ( isLeft ) {
	        end = base - (off / 2);
	    } else {
	        end = base + (off / 2);
	    }

	    sstr = str.slice( 0, end );
	    localStorage.clear();
	    try {
	        localStorage.setItem( 'cache', sstr );
	        limit = sstr.length;
	        isLeft = 0;
	    } catch ( e ) {
	        isLeft = 1;
	    }

	    base = end;
	    off = Math.floor( off / 2 );
	}

	log( 'limit: ' + limit );

</script>
</html>

3.2 数据存储异常处理

try{
	localStorage.setItem(key,value);
}catch(oException){
	if(oException.name == 'QuotaExceededError'){
		console.log('超出本地存储限额!');
		//如果历史信息不重要了,可清空后再设置
		localStorage.clear();
		localStorage.setItem(key,value);
	}

}

 以上博客是转载,谢谢!

相关文章
|
7月前
|
安全 Java Spring
【Java用法】Java 过滤html标签获取纯文本信息
【Java用法】Java 过滤html标签获取纯文本信息
125 0
|
7月前
|
Web App开发 移动开发 JavaScript
【前端用法】HTML5 Video标签如何屏蔽右键视频另存为的js代码以及如何禁用浏览器控件,Video 禁止鼠标右键下载
【前端用法】HTML5 Video标签如何屏蔽右键视频另存为的js代码以及如何禁用浏览器控件,Video 禁止鼠标右键下载
185 0
|
7月前
|
移动开发 JavaScript 前端开发
【前端用法】html5实现地理位置定位(JS获取当前地理位置的方法)
【前端用法】html5实现地理位置定位(JS获取当前地理位置的方法)
137 0
|
8月前
|
移动开发 弹性计算 前端开发
Html5和Webpack3:Webpack5的常见用法
本实验将介绍Webpack5的打包工具的一些常见用法
70 2
|
7月前
|
前端开发 JavaScript
【前端用法】如何让html引用公共的头部和尾部(多个html文件公用一个header.html和footer.html)
【前端用法】如何让html引用公共的头部和尾部(多个html文件公用一个header.html和footer.html)
57 0
|
9月前
|
前端开发
html浮动的用法
html浮动的用法
|
10月前
|
移动开发 人工智能 前端开发
HTML5 常用 标签 锚 列表 用法
HTML5 常用 标签 锚 列表 用法
|
10月前
|
JavaScript
JS混写HTML使用onclick传递参数引号的用法
JS混写HTML使用onclick传递参数引号的用法
118 0
html+css实战112-结构伪类-基本用法
html+css实战112-结构伪类-基本用法
61 0
html+css实战112-结构伪类-基本用法
|
前端开发
html中!important属性的实际用法
什么是!important !important是一个修饰符,语法是选择器{属性:属性值 !important}。作用是更改默认的CSS样式优先级。