• 关于客户端存储技术
  • 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)的更多相关文章

  1. HTML5在客户端存储数据的新方法——localStorage

    HTML5在客户端存储数据的新方法--localStorage localStorage作为HTML5本地存储web storage特性的API之一,主要作用是将数据保存在客户端中,而客户端一般是指上 ...

  2. HTML5 Web 客户端五种离线存储方式汇总

    最近折腾HTML5游戏需要离线存储功能,便把目前可用的几种HTML5存储方式研究了下,基于HT for Web写了个综合的实例,分别利用了Cookie.WebStorage.IndexedDB以及Fi ...

  3. 离线应用与客户端存储(cookie storage indexedDB)

    离线检测 HTML5定义一个属性:navigator.onLine的属性.这个属性值为true,表示设备在线,值为false,表示设备离线.为了更好的确定网络是否可用,HTML5还定义了两个事件.这两 ...

  4. Html5——WEB(客户端)数据存储

    在客户端存储数据 HTML5 提供了两种在客户端存储数据的新方法: localStorage - 没有时间限制的数据存储 sessionStorage - 针对一个 session 的数据存储 之前, ...

  5. HTML5学习笔记之客户端存储数据方法:localStorage(),sessionStorage()

    HTML5提供了两种在客户端存储数据的新方法: localStorage():没有时间限制的数据存储 sessionStorage():针对一个session的数据存储 下面的一个例子用localSt ...

  6. HTML5离线应用与客户端存储

    序言 本篇文章会详细介绍使用HTML5开发离线应用的步骤,以及本地存储与cookie的一些异同,最后利用上面所学例子来实现一个购物车场景. 使用HTML5离线存储的基本过程如下: 离线检测:首先要对设 ...

  7. HTML5 客户端存储数据的两种方式

    HTML5 提供了两种在客户端存储数据的新方法: localStorage - 没有时间限制的数据存储 sessionStorage - 针对一个 session 的数据存储 之前,这些都是由 coo ...

  8. HTML5中两种方法实现客户端存储数据

    HTML5 提供了两种在客户端存储数据的新方法: localStorage - 没有时间限制的数据存储 sessionStorage - 针对一个 session 的数据存储 之前,这些都是由 coo ...

  9. 【译】客户端存储(Client-Side Storage)

    本文转载自:众成翻译译者:文蔺链接:http://www.zcfy.cc/article/660原文:http://www.html5rocks.com/en/tutorials/offline/st ...

随机推荐

  1. 性能监控系统 | 从0到1 搭建Web性能监控系统

    工具介绍 1. Statsd 是一个使用Node开发网络守护进程,它的特点是通过UDP(性能好,及时挂了也不影响主服务)或者TCP来监听各种数据信息,然后发送聚合数据到后端服务进行处理.常见支持的「G ...

  2. springboot-mvc:入参日期类型转换String->Date

    4种方式: 1.通过在application.ym中配置 spring.mvc.data-format: yyyy-MM-dd HH:mm:ss ,使用的是ParserConverter 优点:简单的 ...

  3. 信息学竞赛一本通提高版AC题解—例题1.1活动安排

    书中代码有误.书中为sort(a+1,a+n+1,Cmp). // // Created by yuxi on 19-1-13. // /* * * <信息学竞赛一本通-提高版>全部AC解 ...

  4. smarty 第一条数据判断

    <div class="shangpin_rightdiv2"> <p>颜色</p> <ul id="toggle"& ...

  5. Linux下的C的开发之GCC的初级使用

    <span style="font-family: Arial, Helvetica, sans-serif; "><span style="white ...

  6. MapUtils演示

    org.apache.commons.collections.MapUtils工具类演示 maven pom.xml配置 <dependency> <groupId>org.a ...

  7. phoenix创建表失败:phoenixIOException: Max attempts exceeded

    下面的问题,搞了1天才解决,太坑了,在这里记录一下. 问题现像:执行命令后,1分钟没有返回, 然后报下面的错,偶尔会出现以下不同的报错信息. jdbc:phoenix:10.0.xx.1:2181&g ...

  8. 星际争霸,FF反作弊对战平台

    星际一 [FF]反作弊对战平台让作弊行为无所遁形,只为星际玩家服务的反作弊对战平台目前能检查星际霸主以及其他星际争霸ZUOBI软件支持星际113版本 支持XP WIN7 WIN8 MAC 游戏外挂带来 ...

  9. React Native常用第三方汇总

    React Native 项目常用第三方组件汇总:  react-native-animatable 动画 react-navigation github : https://reactnavigat ...

  10. Docker在PHP项目开发环境中的应用

    http://avnpc.com/pages/build-php-develop-env-by-docker