一、数据存储分为客户端存储和服务端存储
1、而对于客户端存储,在html5以前只能通过cookie来实现;html 5以后增加了web存储(实际保存本地)的功能
 
(1)对于web存储有两个标准:
a、File API 标准: 支持该标准的浏览器能够计算机硬盘的其他文件中读取数据
b、IndexDB 标准: 支持该标准的浏览器内含有一个完整的,微型的数据库引擎
 
(2)分类:
a、本地存储(localStorage):长期保存网站数据,站内任何页面都可以访问该数据
设置数据:localStorage.setItem(键",保存的数据);
读取数据:localStorage.getItem(键");
删除数据:localStorage.removeItem(键");
清除网站在本地保存的数据:localStorage.clear();
 
b、会话数据(sessionStorage):临时保存保存针对一个窗口的数据,窗口关闭之后就会被浏览器删除
设置数据:sessionStorage.setItem(键",保存的数据);
读取数据:sessionStorage.getItem(键");
删除数据:sessionStorage.removeItem(键");
清除网站在本地保存的会话数据:sessionStorage.clear();
注意:
    • 没有web服务器则不能使用web存储:否则会报错,这是不同浏览器对web存储的支持程度不同造成的。
    • 另外,设置数据时要保证键名的唯一性,否则很容易发生命名冲突;
    • 这两者在保存数据时,所有数据都会被保存为文本字符串,对于读取如数值或日期等数据时,需要手动转换数据类型;对于对象,可以通过JSON.stringify()将对象连同其数据保存为文本形式,而通过JSON.parse()把文本转换为对象
    • 此外,两者存放数据大小为一般为5MB,而且它仅在客户端(即浏览器)中保存,不参与和服务器的通信。
c、cookie :生命期为只在设置的cookie过期时间之前一直有效,即使窗口或浏览器关闭。
三者共同点:都保存在客户端,而且同源
 
(3)比较:
a、cookie:
优点:方便,与服务器端通信
缺点:必须处理过期数据; 存放数据大小为4K左右 ,有个数限制(各浏览器不同),一般不能超过20个;每次都会携带在HTTP头中,如果使用cookie保存过多数据会带来性能问题;Cookie需要程序员自己封装,源生的Cookie接口不友好;
b、localStorage:用于保存访客将来还能看到的数据
c、sessionStorage: 保存那些从一个页面传递给下一个页面的数据
 
(4) 关系:
  • 不同浏览器无法共享localStorage或sessionStorage中的信息。
  • 相同浏览器的不同页面间可以共享相同的 localStorage(页面属于相同域名和端口),但是无法共享sessionStorage的信息。
  • cookie在浏览器和服务器端来回传递数据,而localStorage和sessionStorage不会自动把数据发送给服务器,仅会保存在本地。cookie会在浏览器请求头或者ajax请求头中发送cookie内容。
 
 

客户端数据存储cookie、localStoeage、sessionStorage(小记)的更多相关文章

  1. 数据存储-cookie、sessionstorage、localstorage

    HTML5 Web Storage sessionStorage 和 localStorage 是 HTML5 Web Storage API 提供的,可以方便的在 web 请求之间保存数据.有了本地 ...

  2. HTML5客户端数据存储

    HTML5 使在不影响网站性能的情况下存储大量数据成为可能.之前,这些都是由 cookie 完成的,cookie不适合大量数据的存储,因为会影响速度. 举个例子: var obj = {x:1}; / ...

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

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

  4. H5新特性 本地存储---cookie localStorage sessionStorage

    本地存储的作用 :避免登录网站时,用户在页面浏览时重复登录,也可以实现快速登录,一段时间内保存用户的登录效果,提高页面访问速率 在html5中提供三种数据持久化操作的方法: 1.cookie 可看作是 ...

  5. 本地存储cookie,localStorage,sessionStorage

    常见的前端存储有老朋友 cookie,短暂的 sessionStorage,和简单强大的localStorage 他们之间的区别有以下几点 1.. cookie在浏览器和服务器间来回传递.而sessi ...

  6. 浅析Web数据存储-Cookie、UserData、SessionStorage、WebSqlDatabase

    Cookie 它是标准的客户端浏览器状态保存方式,可能在浏览器诞生不久就有Cookie了,为什么需要Cookie 这个东东?由于HTTP协议没有状态,所以需要一个标志/存储来记录客户浏览器当前的状态, ...

  7. Web客户端数据存储学习笔记——Cookie

    今天对登录访问的安全以及web客户端存储做了一些大致的学习,决定在这方面加深理解,记录在博客里.第一个接触到的是Cookie... WHAT? WHY? HOW? 在学习cookie的使用时发现其名称 ...

  8. Vue页面间传值,以及客户端数据存储

    初学Vue,遇到了页面传值的问题,大概网上学习了解了一下,在此跟大家分享一下学习心得,欢迎批评指正. 一.参数传值 如果是简单的页面传值,比如传一个id到详情页等等,推荐使用参数传值. 这里页面是通过 ...

  9. HTML5客户端数据存储机制Web Storage和Web SQL Database

    引言 html5本地存储可以选择两种方式,一种是本地存储,一种是sqlite. 比如开发html5的购物车功能,就可以考虑选择其中之一,进行本地存储与操作. 又或者保存用户登录信息,可以使用local ...

随机推荐

  1. nodeJS环境搭建

    1. Node.js是什么 1.1 Node.js是一个基于Chrome V8引擎的[JavaScript运行环境]. Node.js使用了一个事件驱动.非阻塞式I/O 的模型. 1.2 Node.j ...

  2. JavaScript复制内容到剪贴板

    移动端 需要复制内容到剪贴板时, clipborad.js 不支持ios微信版浏览器,可配合使用 execCommand 使其兼容, 完成一键复制淘口令的功能. 注意使用clipborad.js时,i ...

  3. Makefile简单编写实例

    介绍一下Makefile的简单编写例子. 编写Makefile的规则就是: 目标文件:依赖文件 (tab)编译规则 现在我有一个文件目录结构为: 解释一下这几个文件.首先我创建makefile目录,底 ...

  4. [Python] 等号赋值, copy, deepcopy的区别

    参考链接: 1. 介绍python中的可变类型与不可变类型:https://blog.csdn.net/answer3lin/article/details/86430074 (也可以参考转载博客 P ...

  5. MySQL_(Java)提取工具类JDBCUtils

    MySQL_(Java)使用JDBC向数据库发起查询请求 传送门 MySQL_(Java)使用JDBC创建用户名和密码校验查询方法 传送门 MySQL_(Java)使用preparestatement ...

  6. LeetCode 80. 删除排序数组中的重复项 II(Remove Duplicates from Sorted Array II)

    题目描述 给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素最多出现两次,返回移除后数组的新长度. 不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成 ...

  7. html上传图片后,在页面显示上传的图片

    html上传图片后,在页面显示上传的图片 1.html <form class="container" enctype="multipart/form-data&q ...

  8. CentOS yum安装软件时保留安装包及依赖包或者自动下载安装包及相关依赖包

    CentOS上安装某个软件一般都有很多相关的依赖包,当然,这也与我们安装时software selection步骤中选择的版本有关系,我们服务器在安装CentOS时一般选择Basic Web Serv ...

  9. LC 841. Keys and Rooms

    There are N rooms and you start in room 0.  Each room has a distinct number in 0, 1, 2, ..., N-1, an ...

  10. Struts ognl表达式语言几个符号

    #  获取非根元素值  . 动态都建map集合 $  配置文件取值 %  提供一个ognl表达式运行环境 <%@ page language="java" import=&q ...