一、数据存储分为客户端存储和服务端存储
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. 四 java web考点

    一.GET和POST区别(参考Servlet&JSP学习笔记) <form>中method属性默认为GET. 1.使用POST的情况 GET跟随URL之后,请求参数长度有限,过长的 ...

  2. C# socket异步通讯

    Server: using System; using System.Net; using System.Net.Sockets; using System.Text; namespace TCP_S ...

  3. 【Andriod-AlertDialog控件】 弹出对话框AlertDialog用法

    Result: Code: import android.app.Activity; import android.app.AlertDialog; import android.content.Di ...

  4. Mockito 2 关于打标(stubbing)

    请参考下面有关于打标的代码. //You can mock concrete classes, not just interfaces LinkedList mockedList = mock(Lin ...

  5. 22.Python赋值运算符(入门必读)

    赋值运算符主要用来为变量(或常量)赋值,在使用时,既可以直接用基本赋值运算符“=”将右侧的值赋给左侧的变量,右侧也可以在进行某些运算后再赋值给左侧的变量. = 基本赋值运算符 Python 使用“=” ...

  6. 记一次protobuf和hbase自带protobuf版本冲突的解决

    使用protobuf生产模板代码,使用的版本是: <dependency> <groupId>com.google.protobuf</groupId> <a ...

  7. 线程系列5--java中的ThreadLocal类实现线程范围内的数据共享(二)

    ThreadLocal类可以理解成一个类似与map集合使用,以当前线程当做key 来使用,将线程氛围内需要共享的数据当做value,形成键值对的形式使用.ThreadLocal和线程同步机制都是为了解 ...

  8. Python中异常和JSON读写数据

    异常可以防止出现一些不友好的信息返回给用户,有助于提升程序的可用性,在java中通过try ... catch ... finally来处理异常,在Python中通过try ... except .. ...

  9. VI快捷键速记

    enjoy :P

  10. 在WPF中使用AForge控件

    AForge.NET 是用C#写的一个关于计算机视觉和人工智能领域的框架,它包括图像处理.神经网络.遗传算法和机器学习等. 要实现视频功能,需要使用AForge.Controls命名空间中的Video ...