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);
	}

}

 以上博客是转载,谢谢!

相关文章
|
移动开发 前端开发 JavaScript
HTML 框架高阶用法
HTML框架,或前端框架,如Bootstrap、Vue.js等,显著提升了Web应用开发的速度与用户体验。本文介绍了一些高级技巧,如自定义样式与组件、响应式设计实践、JavaScript功能增强及性能优化策略等,帮助开发者更好地利用这些工具,实现高效开发并提升应用性能与灵活性。
|
安全 Java Spring
【Java用法】Java 过滤html标签获取纯文本信息
【Java用法】Java 过滤html标签获取纯文本信息
444 0
|
Web App开发 移动开发 JavaScript
【前端用法】HTML5 Video标签如何屏蔽右键视频另存为的js代码以及如何禁用浏览器控件,Video 禁止鼠标右键下载
【前端用法】HTML5 Video标签如何屏蔽右键视频另存为的js代码以及如何禁用浏览器控件,Video 禁止鼠标右键下载
958 0
html基本用法
HTML(超文本标记语言)是用于创建网页的标记语言。它通过标签定义文档结构,如文档类型、根元素、元数据和内容。常用标签包括段落、图像、分区、文本格式化、超链接和列表等。例如,使用 `&lt;p&gt;` 标签创建段落,`&lt;img&gt;` 插入图像,`&lt;a&gt;` 创建链接,`&lt;ul&gt;` 和 `&lt;ol&gt;` 分别创建无序和有序列表。
165 16
|
前端开发 JavaScript
html图像属性的高级用法
在HTML中,通过结合CSS、JavaScript及其他HTML元素,可以实现图像属性的高级用法,例如响应式图像、懒加载、图像映射、CSS滤镜、SVG图像、图像作为背景以及使用JavaScript动态更改图像。
|
前端开发 JavaScript
html中id和class的相同和不同之处及用法的规范与区别
在HTML中,`id`和`class`都用于标识和选择元素,但存在一些关键差异。
|
前端开发 JavaScript 开发者
html<p>标签的用法
`&lt;p&gt;` 标签主要用于定义段落,但在网页设计中也有创新用法,如用作容器、自定义样式、响应式设计调整、嵌套结构创建、伪元素及伪类应用、添加微数据和属性,以及增强可访问性等,这些方法可在保证语义清晰的前提下提升页面表现力。
|
移动开发 弹性计算 前端开发
Html5和Webpack3:Webpack5的常见用法
本实验将介绍Webpack5的打包工具的一些常见用法
|
前端开发 搜索推荐 UED
html标题的进阶用法
HTML标题不仅提升文档结构和内容层级,还助力SEO及用户体验。应按重要性递减使用`&lt;h1&gt;`至`&lt;h6&gt;`,通常仅一个`&lt;h1&gt;`为主标题。合理的标题结构利于屏幕阅读器导航,搜索引擎分析标题以理解页面内容,含关键词的标题可提高排名。避免过度优化,利用CSS自定义标题样式,保持设计一致性。响应式设计使标题适应不同屏幕尺寸。嵌套使用时保持逻辑清晰,避免单纯为改变样式而滥用标题标签,使用`&lt;span&gt;`加CSS类替代。在`&lt;head&gt;`中定义页面标题,对SEO至关重要。
HTML中font标签用法
这篇文章详细介绍了HTML中`<font>`标签的用法,包括如何分别设置字体风格(`font-style`)、字体粗细(`font-weight`)、字体大小(`font-size`)和字体类型(`font-family`),并通过实例代码演示了如何综合使用这些属性来定义文本的字体样式。
HTML中font标签用法

热门文章

最新文章