HTML5之客户端存储(Storage)
- 关于客户端存储技术
- storage
一、关于客户端(浏览器)存储技术
浏览器的存储技术第一个能想到的应该就是cookie,关于cookie本身出现的初衷是为了解决客户端识别,可存储信息量小(4k左右),并且每次网络请求都会被请求协议携带发送到服务器,这在一定程度上是比较浪费网络资源,损耗性能。
在HTML5中提供了一个新的客户端存储技术Storage:

cookie与storage的异同:
相同点:同样受同源策略影响,只有在域名一致的情况下才能查看到对应的数据。
不同点:
1.cookie的数据存储量在4K左右,storage的存储量大约在5MB左右;
2.navigator.cookieEnabled检测是否启用了cookie,也就说cookie可以认为控制是否启用。storage则是自动启用,不会被人为关闭。
3.coocie中不建议使用分号、逗号、空格等特殊字符;如果需要使用可以使用转码操作:
encodeURIComponent()//传入特殊字符转码,可以应用转码作为简单的加密处理
decodeURIComponent()//将转码的字符转换为正常字符
storage中只能接收字符串类型的数据,具体操作见下一节。
4.cookie有时效性可以设置有效时间,如果不设置的话在浏览器窗口关闭时就会失效;storage是永久存储。
5.cookie会与服务器通信;storage只存在客服端,不参与服务器通信。
关于cookie的网络应用可以参考这篇博客:计算机网络(HTTP)之客户识别:cookie机制
二、Storage的应用
- localStorage:永久存储,除非手动删除
- sessionStorage:临时存储,窗口关闭就会被清除
写入与读取localStorage数据:
// 写入数据
localStorage.name = "duyi";
localStorage.obj = JSON.stringify({
name:'dengge'
})
// 读取数据
var name =localStorage.name;
var obj = JSON.parse(localStorage.obj);
写入后可以在控制台的Application中查看得到数据:

localStorage与sessionStorage的写入与读取等操作方式一致,Storage的API及属性(同时适应localStorage和sessionStorage):
Storage.length:数据量(返回一个整数,标识存储在Storage对象中的数据项数量);
Storage.key(index):获取键名(该方法接收一个数值,返回对应数据的键名);
Storage.getItem(item):获取与键对应的值(该方法接收一个键名作为参数,返回键名对应的值);
Storage.setItem(item,val):添加Storage数据(该方法接受两个参数,第一个参数为数据名称,第二个为数据值);
Storage.removeItem(item):删除指定的数据(该方法接收一个键名,并把该键名对应的数据从存储中删除);
Storage.clear():清除该域下的所有Storage缓存的数据。
HTML5之客户端存储(Storage)的更多相关文章
- HTML5在客户端存储数据的新方法——localStorage
HTML5在客户端存储数据的新方法--localStorage localStorage作为HTML5本地存储web storage特性的API之一,主要作用是将数据保存在客户端中,而客户端一般是指上 ...
- HTML5 Web 客户端五种离线存储方式汇总
最近折腾HTML5游戏需要离线存储功能,便把目前可用的几种HTML5存储方式研究了下,基于HT for Web写了个综合的实例,分别利用了Cookie.WebStorage.IndexedDB以及Fi ...
- 离线应用与客户端存储(cookie storage indexedDB)
离线检测 HTML5定义一个属性:navigator.onLine的属性.这个属性值为true,表示设备在线,值为false,表示设备离线.为了更好的确定网络是否可用,HTML5还定义了两个事件.这两 ...
- Html5——WEB(客户端)数据存储
在客户端存储数据 HTML5 提供了两种在客户端存储数据的新方法: localStorage - 没有时间限制的数据存储 sessionStorage - 针对一个 session 的数据存储 之前, ...
- HTML5学习笔记之客户端存储数据方法:localStorage(),sessionStorage()
HTML5提供了两种在客户端存储数据的新方法: localStorage():没有时间限制的数据存储 sessionStorage():针对一个session的数据存储 下面的一个例子用localSt ...
- HTML5离线应用与客户端存储
序言 本篇文章会详细介绍使用HTML5开发离线应用的步骤,以及本地存储与cookie的一些异同,最后利用上面所学例子来实现一个购物车场景. 使用HTML5离线存储的基本过程如下: 离线检测:首先要对设 ...
- HTML5 客户端存储数据的两种方式
HTML5 提供了两种在客户端存储数据的新方法: localStorage - 没有时间限制的数据存储 sessionStorage - 针对一个 session 的数据存储 之前,这些都是由 coo ...
- HTML5中两种方法实现客户端存储数据
HTML5 提供了两种在客户端存储数据的新方法: localStorage - 没有时间限制的数据存储 sessionStorage - 针对一个 session 的数据存储 之前,这些都是由 coo ...
- 【译】客户端存储(Client-Side Storage)
本文转载自:众成翻译译者:文蔺链接:http://www.zcfy.cc/article/660原文:http://www.html5rocks.com/en/tutorials/offline/st ...
随机推荐
- mybatis之动态SQL操作之删除
/** * 持久层 */ public class StudentDao { /** * 动态SQL--删除 */ public void dynaSQLwithDelete(int... ids) ...
- 视图解析器InternalResourceViewResolver
ModelAndView对象中即可以封装真实视图路径名,也可以封装视图路径的逻辑名,springmvc.xml 代码如下: <!-- 视图解析器(框架) --> <bean clas ...
- Requests API
Requests API http://docs.python-requests.org/en/latest/ requests的具体安装过程请看: http://docs.python-reques ...
- SQL Server 修改默认实例
有一台服务器,里面装了两个版本的数据库,一个2008(实例名称为MSSQLSERVER),一个2017(实例名称为MSSQLSERVER01): Sql server 数据库可以安装多个数据库实例,但 ...
- Spring-Kafka —— 实现批量消费和手动提交offset
spring-kafka的官方文档介绍,可以知道自1.1版本之后, @KafkaListener开始支持批量消费,只需要设置batchListener参数为true 把application.yml中 ...
- Spring Cloud(0):目录
Spring Cloud(1):概览 Spring Cloud(2):服务发现(Eureka) Spring Cloud(3):配置服务(Config) Spring Cloud(4):断路器(Hys ...
- uni-app 使用本地打包配置安卓原生插件
在使用 uni-app 开发的时候,遇到了一个很棘手的问题.即获取设备参数的时候 uni-app 并没有相关方法,而安卓开发是可以做到的,因为接的是三方推广,所以功能必须实现,所以求助了安卓的大佬帮我 ...
- android#boardcast#发送自定义广播
广播主要分为两种类型,标准广播和有序广播,通过实践的方式来看下这两种广播具体的区别. 一.发送标准广播 在发送广播之前,我们还是需要先定义一个广播接收器来准备接收此广播才行,不然发出去也是白发.因此新 ...
- 架构模式: Saga
架构模式: Saga 上下文 您已应用每服务数据库模式.每个服务都有自己的数据库.但是,某些业务事务跨越多个服务,因此您需要一种机制来确保服务之间的数据一致性.例如,假设您正在建立一个客户有信用额度的 ...
- centos超详细搭建jumpserver跳板机
一.官网 https://docs.jumpserver.org/zh/master/ 二.一站式.分布式安装文档 三.选择最新版 四.在线安装文档 五.按文档部署(4G.二核.50G硬盘) 六 ...