html5在引入webStorage之前,主要用cookies.

html5的webstorage 分两种:LocalStorage 和SessionStorage,两者的差别主要在生命周期不同。

1、LocalStorage

LocalStorage用于持久化的本地存储,存储资料在客户端(client)的浏览器上,除非主动删除数据,否则数据是永远不会过期的。LocalStorage使用键值对的方式进行存储,存储的方式只能是字符串。存储内容可以有图片、json、样式、脚本等只要可以序列化为字符串的。

localstorage API基本使用方法:

  • 使用localStorage.setItem(key,value)设置数据,如下:
  1. for(var i=0; i<10; i++){
  2. localStorage.setItem(i,i);
  3. }
  • ​使用localStorage.getItem(key) 获取数据,使用localStorage.valueOf()获取全部数据, 如下:
  1. for(var i=0; i<10; i++){
  2. localStorage.getItem(i);
  3. }
  • ​使用localStorage.removeItem(key)删除数据,如下:
  1. for(var i=0; i<5; i++){
  2. localStorage.removeItem(i);
  3. }
  • 使用localStorage.clear()清空全部数据,使用localStorage.length 获取本地存储数据数量,

  • 使用localStorage.key(N)获取第 N 个数据的 key 键值。

2 、 SessionStorage

SessionStorage用于本地存储一个会话中 的数据,这些数据只有在同一个会话中的页面才能访问并且会话结束,例如关闭窗口后,,数据也会随之被销毁。它是一种会话级别的存储。

SessionStorage的使用方法与localstorage的使用方法相似。

3、webstorage 与cookie的区别

  • cookie数据始终在同源的http请求中携带,cookie在浏览器和服务器端来回传递,而localstorage和sessionstorage不会自动把数据传送给服务器端,仅在本地保存。

  • 存储大小限制不同,cookie的存储数据大小要求不能超过4k,每次的http请求都会携带cookie,所以保存的数据需要比较小。sessionstorage和localstorage存储数据大小限制比cookie要大,可以达到5m或者更大,不同浏览器设置可能不同。

  • 数据生命周期有所不同。cookie的生命周期一般在其设置的过期时间之前有效。而sessionstorage仅在关闭窗口前有效,localstorage持久有效,直到手动删除。

  • 作用域不同,sessionstorage不在不同浏览器中共享,即使是同一页面也不支持。而localstorage在所有同源窗口中都是共享的,同样,cookie在所有同源窗口中也是可以共享的。

  • cookie的数据还有路径的概念,可以通过设置限制cookie只属于某一个路径。

  • web storage支持事件通知机制,可以将数据更新的通知发送给监听者。

4、使用webstorage的好处

  • 减少网络流量:使用webstorage将数据保存在本地中,不用像cookie那样,每次传送信息都需要发送cookie,减少了不必要的数据请求,同时减少数据在浏览器端和服务器端来回传递。

  • 快速显示数据:从本地获取数据比通过网络从服务器获取数据效率要高,因此网页显示也要比较快。

  • 临时存储:很多时候数据只需要在用户浏览一组页面期间使用,关闭窗口后数据就可以丢弃了,这种情况使用sessionStorage非常方便。

  • 不影响网站效能:因为web storag只作用在客户端的浏览器,不会占用频宽,不想网站效能,所以可以把size大,安全性低的资料存储在web storage中,提ga高网站效能。

5、离线缓存(application cache)

HTML5引入了应用程序缓存器,可对web进行缓存,在没有网络形况下使用,通过创建cache manifest文件,创建应用缓存。

HTML5离线存储之webstorage的更多相关文章

  1. 吓哭原生App的HTML5离线存储技术,却出乎意料的容易!【低调转载】

    吓哭原生App的HTML5离线存储技术,却出乎意料的容易![WeX5低调转载] 2015-11-16 lakb248 起步软件 近几天,WeX5小编编跟部分移动应用从业人士聊了聊,很多已经准备好全面拥 ...

  2. html5 离线存储

    在html页面中引入manifest文件 <html manifest="sample.appcache"> 在服务器添加mime-type text/cache-ma ...

  3. HTML5离线存储原理

    找到一篇介绍离线缓存的,感觉比之前看到的解释的更透彻,新的知识点记录如下: 大家都知道Web App是通过浏览器来访问的,所以离线状态下是无法使用app的.其中web app中的一些资源并不经常改变, ...

  4. html5 离线存储 worker

    html5 离线存储 <!DOCTYPE html> <html manifest="cache.manifest"> <!--manifest存储- ...

  5. 神奇的HTML5离线存储(应用程序缓存)

    声明:本文为原创文章,如需转载,请注明来源并保留原文链接前端小尚,谢谢! 前言 使用 HTML5,通过创建 cache manifest 文件,可以轻松地创建 web 应用的离线版本. HTML5引入 ...

  6. 【html5】html5离线存储

    html5本地存储之离线存储 1.为什么使用离线存储 ①最新的主流的浏览器中都已添加了对HTML5的offline storage功能的支持,HTML5离线存储功能非常强大, 它的作用是:在用户没有与 ...

  7. 利用Node实现HTML5离线存储

    前言 支持离线Web应用开发是HTML5的一个重点.离线Web应用就是在设备不能上网的时候仍然可以运行的应用.开发离线Web应用需要几个步骤,其中一个就是离线下必须能访问一定的资源(图像 JS css ...

  8. html5离线存储

    为了提升Web应用的用户体验,我们在做网站或者webapp的时候,经常需要保存一些内容到本地.例如,用户登录token,或者一些不经常变动的数据. 随着HTML5的到来,出现了诸如AppCache.l ...

  9. HTML5离线存储的工作原理和使用

    在用户没有与因特网连接时,可以正常访问站点或应用,在用户与因特网连接时,更新用户机器上的缓存文件. 原理:HTML5的离线存储是基于一个新建的.appcache文件的缓存机制(不是存储技术),通过这个 ...

随机推荐

  1. 【系统】Ubuntu和win7双系统更改系统引导菜单

    1. 下载EasyBCD 2. 编辑菜单选项以及重写MBR

  2. HUE配置文件hue.ini 的Spark模块详解(图文详解)(分HA集群和HA集群)

    不多说,直接上干货! 我的集群机器情况是 bigdatamaster(192.168.80.10).bigdataslave1(192.168.80.11)和bigdataslave2(192.168 ...

  3. DotNetCore跨平台~autofac属性的自动注入

    回到目录 在使用autofac这个DI工具时,我们一般使用的是构造方法注入,而dotnetcore的标准框架里也集成了构造方法注入,而属性注入在一些场景下,表现的更为灵活,像java的spring框架 ...

  4. [中英对照]INTEL与AT&T汇编语法对比

    本文首先对文章Intel and AT&T Syntax做一个中英文对照翻译,然后给出一个简单的例子,再用gdb反汇编后,对INTEL与AT&T的汇编语法进行对照从而加深理解. Int ...

  5. multi-threads JavaEE 容器

    Thread -- Request What is recommended way for spawning threads from a servlet in Tomcat [duplicate] ...

  6. [转]Hadoop集群_WordCount运行详解--MapReduce编程模型

    Hadoop集群_WordCount运行详解--MapReduce编程模型 下面这篇文章写得非常好,有利于初学mapreduce的入门 http://www.nosqldb.cn/1369099810 ...

  7. idp sp sso---SAML Single Sign-On (SSO) Service for Google Apps

    src: https://developers.google.com/google-apps/sso/saml_reference_implementation Security Assertion ...

  8. 关于ActiveX在WebBrowser不加载问题

    最近在做电子面单打印,需要在CS端集成web,这里我使用了WebBrowser,下文简称“wb”. wb可以简单的理解为IE的阉割版,它是支持ActiveX的,首先要确保ActiveX在IE中正常安装 ...

  9. Nginx 基于客户端 IP 来开启/关闭认证

    前些日子帮助公司在搭建了一个内部资源的导航页面,方便公司员工访问各种常用的系统.因为这个页面包含一些敏感信息,我们希望对其做认证,但仅当从外网访问的时候才开启,当从公司内网访问的时候,则无需输入账号密 ...

  10. [javaSE] GUI(jar包双击运行)

    首先应该在java文件中定义包名,package 包名 带包编译成class文件 切换到目录下,使用jar -cvf xx.jar 包名,就是把那个包放到xx.jar包里面 此时双击会报错,找不到要执 ...