谈一谈HTML5本地存储技术


Posted in HTML / CSS onMarch 02, 2016

本地缓存是HTML5出现的新技术,这个技术的出现使得移动web的开发成为了可能。我们都知道,要想打造一个高性能的移动应用,速度是关键。而在HTML5之前,只有cookie能够存储数据,大小只有4kb。这严重限制了应用文件的存储,导致web开发的移动应用程序需要较长的加载时间。有了本地存储,让web移动应用能够更接近原生。

浏览器中,本地存储通过window.localStorage调用。判断浏览器是否支持本地存储的代码如下:

XML/HTML Code复制内容到剪贴板
  1. if(window.localStorage){     
  2.  alert('This browser supports localStorage');     
  3. }else{     
  4.  alert('This browser does NOT supportlocalStorage');     
  5. }     

如果我们要将数据存储到本地,最简单的方法就是为window。localStorage添加一个属性并为其赋值。例如我们要存储一个数据name,它的值为Tom,就可以通过如下方式实现:

XML/HTML Code复制内容到剪贴板
  1. window.localStorage.name = “Tom”     

这里要注意字符串变量需要引号。当我们想取出本地存储中的数据市,可以利用getItem方法。整个代码流程如下:

JavaScript Code复制内容到剪贴板
  1. var storage = window.localStorage;     
  2. storage.name = “Tom”;     
  3. //取出name数据     
  4. var name1 = storage.getItem(“name”);     
  5. alert(name1);     

这段代码在Chrome浏览器控制台中的显示结果就是一个显示Tom的提示框。可见我们已经通过这种方式正确的进行了数据的存储与读取。

如果我们想删除这些存储的数据,可以使用removeItem方法。在以上代码中加入如下代码:

JavaScript Code复制内容到剪贴板
  1. storage.removeItem(“name”);     

这时当我们再次alert的时候将显示null,因为这个数据已经被清空了。

了解了一些基本的本地存储用法和思想后,我们来系统的介绍一下本地存储

本地存储分为三大类:localStorage/sessionStorage/本地数据库

localStorage和sessionStorage二者的用法、所包含的函数、调用方法等都是相同的,二者仅仅是含义不同。其中,localStorage所存储的数据是长期有效的,而sessionStorage所存储的信息当每个会话(session)关闭时就会销毁(通俗的说就是页面关闭后数据自动销毁)。

由于二者的特性不同,因此应用的场景也有很大区别。通常,当我们需要存储一些用户配置项等一些需要长时间存储的数据信息时,需要使用localStorgae进行保存,利用了其时效长的特点。相应的,当我们需要实现类似购物车等基于session的功能时,就需要使用sessionStorage。

由于localStorage和sessionStorage的用法相同,因此我们以localStorage为例,介绍二者的方法。

1、设置数据setItem
用法为localStorage.setItem(“key”, “value”),表示将value值传递给key。(sessionStorage.setItem使用方法同理,下面不再一一介绍)

2、获取数据getItem
用法为localStorage.getItem(“key”),只要输入相应的key值,就可以从中取出对应的value值。

3、删除特定的数据removeItem
用法为localStorage.removeItem(key),删除key对应的数据。

4、清空所有数据clear
用法为localStorage.clear(),表示清空所有存储系统中的数据。

以上就是一些最基本的sessionStorage/localStorage用法,希望对大家的学习有所帮助。

HTML / CSS 相关文章推荐
让IE6、IE7、IE8支持CSS3的脚本
Jul 20 HTML / CSS
html5+css3之CSS中的布局与Header的实现
Nov 21 HTML / CSS
使用CSS3制作响应式导航菜单的方法
Jul 12 HTML / CSS
CSS中的字体大小设置属性总结
May 24 HTML / CSS
利用CSS3动画实现圆圈由小变大向外扩散的效果实例
Sep 10 HTML / CSS
10分钟理解CSS3 FlexBox弹性布局
Dec 20 HTML / CSS
css3使用animation属性实现炫酷效果(推荐)
Feb 04 HTML / CSS
css3的focus-within选择器的使用
May 11 HTML / CSS
基于HTML5的WebSocket的实例代码
Aug 15 HTML / CSS
使用HTML5技术开发一个属于自己的超酷颜色选择器
Sep 22 HTML / CSS
Web前端:CSS最强总结 附详细代码
Mar 31 HTML / CSS
flex弹性布局详解
Mar 20 HTML / CSS
逼真的HTML5树叶飘落动画
Mar 01 #HTML / CSS
HTML5+CSS3绘制锯齿状的矩形
Mar 01 #HTML / CSS
使用HTML5中的contentEditable来将多行文本自动增高
Mar 01 #HTML / CSS
解析HTML5中的新功能本地存储localStorage
Mar 01 #HTML / CSS
基于HTML5的齿轮动画特效
Feb 29 #HTML / CSS
HTML5中meta属性的使用方法
Feb 29 #HTML / CSS
HTML5+lufylegend实现游戏中的卷轴
Feb 29 #HTML / CSS
You might like
php5编程中的异常处理详细方法介绍
2008/07/29 PHP
PHP中10个不常见却非常有用的函数
2010/03/21 PHP
几种有用的变型 PHP中循环语句的用法介绍
2012/01/30 PHP
PHP中如何实现常用邮箱的基本判断
2014/01/07 PHP
php与c 实现按行读取文件实例代码
2017/01/03 PHP
php的无刷新操作实现方法分析
2020/02/28 PHP
jquery 1.3.2 IE8中的一点点的小问题解决方法
2009/07/10 Javascript
extjs tabpanel限制选项卡数量实现思路及代码
2013/04/02 Javascript
JavaScript实现的图像模糊算法代码分享
2014/04/22 Javascript
jquery插件之定时查询待处理任务数量
2014/05/01 Javascript
推荐三款不错的图片压缩上传插件(webuploader、localResizeIMG4、LUploader)
2017/04/21 Javascript
关于Vue实现组件信息的缓存问题
2017/08/23 Javascript
Javascript实现异步编程的过程
2018/06/18 Javascript
在Node.js中将SVG图像转换为PNG,JPEG,TIFF,WEBP和HEIF格式的方法
2019/08/22 Javascript
微信小程序实现同时上传多张图片
2020/02/03 Javascript
vue 使用async写数字动态加载效果案例
2020/07/18 Javascript
urllib2自定义opener详解
2014/02/07 Python
Python中处理时间的几种方法小结
2015/04/09 Python
python获取一组数据里最大值max函数用法实例
2015/05/26 Python
用python实现对比两张图片的不同
2018/02/05 Python
利用TensorFlow训练简单的二分类神经网络模型的方法
2018/03/05 Python
pyspark.sql.DataFrame与pandas.DataFrame之间的相互转换实例
2018/08/02 Python
Pycharm+Scrapy安装并且初始化项目的方法
2019/01/15 Python
Python 实例方法、类方法、静态方法的区别与作用
2019/08/14 Python
python中栈的原理及实现方法示例
2019/11/27 Python
pycharm新建Vue项目的方法步骤(图文)
2020/03/04 Python
Python实现PS滤镜中的USM锐化效果
2020/12/04 Python
linux面试题参考答案(10)
2016/10/26 面试题
机电专业大学生求职信
2013/10/04 职场文书
公务员总结性个人自我评价
2013/12/05 职场文书
法学专业毕业生求职信
2014/06/12 职场文书
党的群众路线教育实践活动总结
2014/10/30 职场文书
2014年采购员工作总结
2014/11/18 职场文书
2016最新离婚协议书范本及程序
2016/03/18 职场文书
SQL模糊查询报:ORA-00909:参数个数无效问题的解决
2021/06/21 Oracle
Vue router配置与使用分析讲解
2022/12/24 Vue.js