一、数据存储分为客户端存储和服务端存储
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. What is Double 11 in China? Is it a famous festival?

    "1" means single, 11th, November is quadruple single!! What a tragedy for those single you ...

  2. ON_WM_MOUSEWHEEL无响应

    问题:ON_WM_MOUSEWHEEL消息无响应 转动滚轮会导致Windows在有输入焦点的窗口(不是鼠标光标下面的窗口)产生WM_MOUSEWHEEL消息.所以当子窗口没有焦点的时候将收不到消息WM ...

  3. git diff 以及解决代码冲突

    我是使用一台电脑测试, 然后在本地电脑创建了两个工作目录.专门用来模拟两个人提交代码.假设a.b两个人.只使用一个master分支做测试, 没有建立其他的分支. 主要就是为了研究冲突的解决方式.感觉g ...

  4. [Linux]Ubuntu安装Java详细教程

    环境:Ubuntu16.04 桌面版虚拟机 1.下载安装包:jdk-8u231-linux-x64.tar.gz 链接: https://pan.baidu.com/s/1mmtzKejL1Fd_RQ ...

  5. Confluence 6 移动一个文件到其他页面

    你需要同时具有 添加页面(Add Page),添加附件(Add Attachment)和删除附件(Remove Attachment)空间权限来移动一个附件文件到其他页面. 希望修改附件附加的页面到其 ...

  6. CCPC-Wannafly & Comet OJ 夏季欢乐赛(2019)F

    题面 F比较友善(相较于E),我们发现如果i和j是满足条件的两个下标,那么: a[i]-2*b[i] + a[j]-2*b[j] >=0 或者 b[i]-2*a[i] + b[j]-2*a[j] ...

  7. sh_21_遍历字典的列表

    sh_21_遍历字典的列表 students = [ {"name": "阿土"}, {"name": "小美"} ] ...

  8. linux C线程

    一个应用程序可以启动若干个线程: 线程,是程序执行的最小单位: 一般一个最简单的程序最少有一个线程,就是程序本身,也是主函数: 一个线程阻塞不会影响另一个线程: 多线程的进程可以尽可能多的利用系统CP ...

  9. 关于在mac上使用valet集成环境添加memcache扩展

    由于业务要求需要使用到memcache,直接使用brew安装在phpinfo上面显示并没有加载成功,使用以下方法时我们需要先卸载之前已经安装完成的memcache brew unlink php70- ...

  10. 【面试】Redis

    1.如果在setnx之后执行expire之前进程意外crash或者要重启维护了,那会怎么样? set指令有非常复杂的参数,这个应该是可以同时setnx和expire合成一条指令来用的! 2.使用过Re ...