谈一谈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 相关文章推荐
10个很棒的 CSS3 开发工具 推荐
May 16 HTML / CSS
css3使网页、图片变成灰色兼容大多数浏览器
Jul 02 HTML / CSS
简单掌握CSS3中resize属性的用法
Apr 01 HTML / CSS
突袭HTML5之Javascript API扩展4—拖拽(Drag/Drop)概述
Jan 31 HTML / CSS
html5的画布canvas——画出弧线、旋转的图形实例代码+效果图
Jun 09 HTML / CSS
html5 实现客户端验证上传文件的大小(简单实例)
May 15 HTML / CSS
巧用HTML5给按钮背景设计不同的动画简单实例
Aug 09 HTML / CSS
canvas如何绘制钟表的方法
Dec 13 HTML / CSS
详解html5 postMessage解决跨域通信的问题
Aug 17 HTML / CSS
HTML5 Blob对象的具体使用
May 22 HTML / CSS
AmazeUI 模态窗口的实现代码
Aug 18 HTML / CSS
canvas 绘图时位置偏离的问题解决
Sep 16 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
PHP setcookie() cannot modify header information 的解决方法
2009/01/09 PHP
PHP 文件上传源码分析(RFC1867)
2009/10/30 PHP
用ADODB.Stream转换
2007/01/22 Javascript
jquery text,radio,checkbox,select操作实现代码
2009/07/09 Javascript
js图片自动切换效果处理代码
2013/05/07 Javascript
js中typeof的用法汇总
2013/12/12 Javascript
js确认删除对话框适用于a标签及submit
2014/07/10 Javascript
JavaScript html5 canvas画布中删除一个块区域的方法
2016/01/26 Javascript
jQuery.form插件的使用及跨域异步上传文件
2016/04/27 Javascript
JS实现屏蔽网页右键复制及ctrl+c复制的方法【2种方法】
2016/09/04 Javascript
javascript中闭包概念与用法深入理解
2016/12/15 Javascript
Node.js利用Net模块实现多人命令行聊天室的方法
2016/12/23 Javascript
vue计算属性时v-for处理数组时遇到的一个bug问题
2018/01/21 Javascript
[01:01:04]2018DOTA2亚洲邀请赛 4.5 淘汰赛 OpTic vs TNC 第一场
2018/04/06 DOTA
python中的一些类型转换函数小结
2013/02/10 Python
python检测lvs real server状态
2014/01/22 Python
在IIS服务器上以CGI方式运行Python脚本的教程
2015/04/25 Python
pytorch中的weight-initilzation用法
2020/06/24 Python
Django权限控制的使用
2021/01/07 Python
澳大利亚儿童和婴儿产品在线商店:Lime Tree Kids
2017/10/05 全球购物
Orvis官网:自1856年以来,优质服装、飞钓装备等
2018/12/17 全球购物
英国女鞋购物网站:Moda in Pelle
2019/02/18 全球购物
什么是URL
2015/12/13 面试题
动物科学专业毕业生的自我评价
2013/11/29 职场文书
自我鉴定标准格式
2014/03/19 职场文书
诚信考试倡议书
2014/04/15 职场文书
公司年会策划方案
2014/05/17 职场文书
会计试用期自我评价怎么写
2014/09/18 职场文书
党员个人对照检查材料
2014/10/01 职场文书
个人买房协议书范本
2014/10/06 职场文书
党的群众路线教育实践活动学习计划
2014/11/03 职场文书
公司感谢信范文
2015/01/22 职场文书
房产证明范本
2015/06/19 职场文书
人事任命书范本
2015/09/21 职场文书
Python中基础数据类型 set集合知识点总结
2021/08/02 Python
关于springboot配置druid数据源不生效问题(踩坑记)
2021/09/25 Java/Android