一、数据存储分为客户端存储和服务端存储
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. 【leetcode】1278. Palindrome Partitioning III

    题目如下: You are given a string s containing lowercase letters and an integer k. You need to : First, c ...

  2. 基于node.js的websocket上传小功能

    一.node.js 在目录里新建index.js var ws = require("nodejs-websocket"); console.log("开始建立连接... ...

  3. word粘贴图片到ckeitor

    在之前在工作中遇到在富文本编辑器中粘贴图片不能展示的问题,于是各种网上扒拉,终于找到解决方案,在这里感谢一下知乎中众大神以及TheViper. 通过知乎提供的思路找到粘贴的原理,通过TheViper找 ...

  4. Hibernate 5 开始使用指南前言

    同时在面向对象软件和关系型数据库进行工作,可能会非常复杂和费时.数据在对象和数据库之间可能会不一致,然后导致开发成本会非常高. Hibernate 是一个针对 Java 环境的对象关系映射(Objec ...

  5. angularJS限制 input-text 只能输入数字

    最初的目的是为了让输入的字段仅为数字,不要包含英文,理所当然想到了正则表达,比起对每一个字符判断ASCII码要方便的多 JS正则表达式的使用,可以参考正则表达式 以match为例,全局匹配非数字 va ...

  6. HDU 5115 Dire Wolf ——(区间DP)

    比赛的时候以为很难,其实就是一个区间DP= =..思路见:点我. 区间DP一定要记住先枚举区间长度啊= =~!因为区间dp都是由短的区间更新长的区间的,所以先把短的区间更新完.. 代码如下: #inc ...

  7. Leetcode题目33.搜索旋转排序数组(中等)

    题目描述: 假设按照升序排序的数组在预先未知的某个点上进行了旋转. ( 例如,数组 [0,1,2,4,5,6,7] 可能变为 [4,5,6,7,0,1,2] ). 搜索一个给定的目标值,如果数组中存在 ...

  8. TCP 之 TCP_NEW_SYN_RECV状态

    概述 以前的TCP请求控制块没有独立的状态,而是依赖于他们的父控制块的状态,也就是TCP_LISTEN状态,现在要把请求控制块加入到全局的ehash中,所以需要一个状态,而TCP_SYN_RECV状态 ...

  9. smarty中ifelse、foreach以及获取数组中键值名的一个实例

    <{if empty($history)}> <tr> <td colspan="6">Not any records!</td> ...

  10. VMware安装CentOS后无法无法识别网卡的解决方法

    请找到安装CentOS虚拟机的安装目录,找到.vmx后缀名的文件,点击鼠标右键选择用记事本打开,在文件的最后一行添加内容:ethernet0.virtualDev = "e1000" ...