• 关于客户端存储技术
  • 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. 如何配置git send-email相关的邮箱信息?

    关键是配置smtpserver,请参考此处

  2. leetcode218 天际线问题

    来自leetcode题解:扫描线法AlgsCG class Solution { public: vector<vector<int>> getSkyline(vector&l ...

  3. jquery简单入门1

    前端 html:展示 form: 属性: action和method 子标签: input(10种) text password radio checkbox file submit button r ...

  4. BN和L2 NORM的区别

    bn是拉平各个feature的差异,而l2 norm是拉平各个样本的差异,本来各个样本的模长千变万化,按照距离的概念,差别是很大的,但是l2 norm后,距离就变得有一个上界了,显然样本间差异变小了. ...

  5. oracle+mybatis批量插入踩坑记

    最近在项目中需要使用oracle+mybatis批量插入数据,因为自增主键,遇到问题,现记录如下: 一.常用的两种sql写法报错 1.insert ... values ... <insert ...

  6. 【CodeForces - 939A】Love Triangle(模拟)

    Love Triangle Descriptions: 正如你所知道的,没有男性飞机也没有女性飞机.然而,地球上的每一个平面都喜欢另一个平面.地球上有n个平面,编号从1到n,编号i的平面喜欢编号fi的 ...

  7. Go语言入门篇-JSON&http调用

    一.Decoder /(一)Decoder func DecoderExample(){ const jsonStream = ` { "Name" : "Ed" ...

  8. 数据结构 双向链表 C语言实现

    dlist.h #ifndef __dList_H #define __dlist_H typedef int Item; typedef struct Node *PNode; typedef PN ...

  9. 22.把hive表中数据导入到mysql中

    先通过可视化工具链接mysql,在链接的时候用sqoop 用户登录 在数据库userdb下新建表 保存,输入表名upflow 现在我们需要把hive里面的数据通过sqoop导入到mysql里面 sqo ...

  10. 【Python】【demo实验18】【练习实例】【统计输入字符串中,数字的个数、英文字母的个数及其他符号的个数】

    原题: 输入一行字符,分别统计出其中英文字母.空格.数字和其它字符的个数. (本题暂时不支持中文字符及汉字) 我的代码: #!/usr/bin/python # encoding=utf-8 # -* ...