HTML5 Storage API

Web Storage是HTML5引入的一个非常重要的功能,可以在客户端本地存储数据,类似HTML4的cookie,但可实现功能要比cookie强大的多。 

在Web Storage出现之前,远程的Web服务器需要存储客户端和服务器间交互使用的所有相关数据。cookie是一个在服务器和客户端间来回传送文本值的内 置机制。服务器可以基于其放在cookie中的数据在不同web页面间跟踪用户的信息。用户每次访问某个域是,cookie数据都会被来回传送。

尽管cookie无处不在,但它还是有一些总所周知的缺点:

1)cookie的大小受限制,cookie大小被限制在4KB,不能接受像文件或邮件那样的大数据。

2)只要有请求涉及cookie,cookie就 要在服务器和浏览器之间来回传送(这解释为什么本地文件不能测试cookie)。一方面,这意味着cookie数据在网络上是可见的,不加密的情况下有安 全风险;另一方面,无论加载哪个相关url,cookie中的数据都会消耗网络带宽。

Web Storage出现之后,开发者可以将需要跨请求重复访问的数据直接存储在客户端的浏览器中(开发者也可以将数据存储在javascript对象中,对象在页面加载时保存,并且容易获取),还可以在关闭浏览器很久之后再次打开时恢复数据,以减少网络流量。

Web Storage又分为两种: 
sessionStorage 
localStorage 
key和value都必须为字符串,换言之,web Storage的API只能操作字符串。 

Web Storage API检查浏览器的支持性

检测window.sessionStorage和window.localStorage是否存在

 

设置和获取数据

sessionStorage.setItem("myFirstKey","myFirstValue");或者sessionStorage.myFirstKey = myFirstValue;或者sessionStorage["myFirstKey"] ="myFirstValue";

获取数据

sessionStorage.getItem("myFirstKey");

删除数据

sessionStorage.removeItem("myFirstKey");

删除存储列表中的所有数据

sessionStorage.clear();

设置和获取的调用不必要出现在同一个网页上,只要 网页是同源的(规则、主机和端口)基于相同的键,我们都能够在其他网页中获取设置在sessionStorage。大部分开发者对页面重新加载时丢失脚本 数据的问题已经习以为常,但是通过Web Storage API保存的数据在重新加载页面之后数据仍然存在。

当用户关闭窗口或浏览器,sessionStorage数据将会被清除

localStorage 

localStorage 和sessionStorage的区别在于访问它们的名称不同,分别是通过localStorage 和sessionStorage对象来访问它们,两者的行为上的差异主要是数据的保存时长及它们的共享方式

sessionStorage localStorage

数据会保存在存储它的窗口或标签页关闭时

(浏览器刷新时可以存储数据,浏览器关闭时不可以)

数据的生命期比窗口或浏览器的生命期长
数据只在构建它们的窗口或者标签页内可见 数据可被同源的每个窗口或者标签页共享

 将数据存储在本地客户端,进而从本地而不是远程获取数据,即可以降低网络流量,又可提升浏览器的响应速度。

一个困扰开发人员的常用问题是,当用户从应用程序的一个页面切换到另外一个页面时如何管理数据。传统的实现方法是有服务器存储数据,当用户在网页间切换时来回传递数据。还有一种做法是应用程序尽可能让用户停留在一个动态更新的网页上。不过用户更喜欢在页面间切换。

演示地址:http://lovermap.sinaapp.com/test/storage.html

JSON对象的存储

虽然HTML5 Web Storage规范允许将任意类型的对象保存为键-值对形式。实际情况是一些浏览器将数据限定为文本字符串类型。现代浏览器原生支持JSON。我们可以通过序列化复杂对象将JSON数据保存到Storage中,以实现复杂数据类型的持久化。

var data; function loadData(){     data = JSON.parse(sessonStorage['myStorage']); } function saveData(){     sessonStorage['myStorage'] = JSON.stringify(data);//对象转变成字符串 } window.addEventListener("load",loadData,true); window.addEventListener("unload",loadData,true);

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索cookie
, 存储
, 数据
, 浏览器
, localstorage
, storage
loadData方法
html5 localstorage、html5 sessionstorage、html5 storage、html5 storage事件、html5的localstorage,以便于您获取更多的相关知识。

时间: 2024-08-24 21:14:01

HTML5 Storage API的相关文章

封装Html5 Fullscreen API

复制前言: 使用新的全屏 API,可以将用户的注意力导向特定元素,同时隐藏背景或转移对其他应用的注意力.因为W3C全屏规 范还未达到最终版本,所以大多数浏览器供应商都使用唯一标识符为 API 添加前缀.在本例中,Microsoft 使用ms.最好是有单个函数可以请求所有前缀的全屏模式,类似于此处显示的大部分示例.若要获取更佳性能,请将 W3C API 名称放在第一,其后跟随设置前缀的版本. 先来几个或详细解释的地址吧: http://www.zhangxinxu.com/wordpress/20

HTML5 History API实现无刷新跳转

 在HTML5中, 1. 新增了通过JS在浏览器历史记录中添加项目的功能.       2. 在不刷新页面的前提下显示改变浏览器地址栏中的URL.       3. 添加了当用户单击浏览器的后退按钮时触发的事件.  通过以上三点,可以实现在不刷新页面的前提下动态改变浏览器地址栏中的URL,动态显示页面内容.  比如: 当页面A和页面B内容不一样的时候,在HTML5之前,如果从页面A切换到页面B时,需要在浏览器下从页面A切换到页面B,或者说,如果需要有后退按钮功 能的话,可以在URL地址加#XXX

使用HTML5 File API实现客户端log读写

本文主要介绍使用http://www.aliyun.com/zixun/aggregation/79228.html"> HTML5 File API 实现客户端 log 读写,并实现客户端 log 下载功能,帮助用户更方便的收集客户端 log. 在 HTML 5 里,从 Web 网页上访问本地文件系统变的十分的简单,那就是使用 File API. 这个 File 规范说明里提供了一个 API 来表现 Web 应用里的文件对象,您可以通过编程来选择它们,访问它们的信息.File API 有

微信小程序把玩(三十六)Storage API

原文:微信小程序把玩(三十六)Storage API 其实这个存储在新建Demo的时候就已经用到了就是存储就是那个logs日志,数据存储主要分为同步和异步 异步存储方法: 存数据 wx.setStorage(object) 相同key会覆盖,可写回调方法 获取方法: wx.getStorage(object) 清除方法: wx.clearStorage()里面可以写回调函数 成功,失败,完成 同步存储方法: 存数据 相同key会覆盖 wx.setStorageSync(key,data) 读数据

html5 File API的文件操作使用例子

写在前面 这段时间一直有朋友在问文件上传下载的事,搜一下论坛发现相关的问题不少,但是不够系统,本着为人民服务的态度本文试着将一些问题整理一下,争取用初学者可以更明确的去处理相关的问题.文件上传是开发中绕不过的一个坎儿,对于很多没有经验的人来说,简直懵逼,目前我所知道的上传方式有下面这几种: 传统flash上传 隐藏iframe框上传 表单数据提交 HTML5的新工具--File API 本文限于篇幅先介绍最后一种使用html5 File API进行文件上传的相关细节. 历史上,JavaScrip

开大你的音响,感受HTML5 Audio API带来的视听盛宴

话说HTML5的炫酷真的是让我爱不释手,即使在这个提到IE就伤心不完的年代.但话又说回来,追求卓越Web创造更美世界这样高的追求什么时候又与IE沾过边儿呢?所以当你在看本文并且我们开始讨论HTML5等前沿东西的时候,我们默认是把IE排除在外的.本文的例子可以工作在最新的Chrome及Firefox浏览器下,其他浏览器暂未测试. 若下方未出现演示页面请刷新.  你也可以点此全屏演示  或者前往GitHub进行代码下载然后本地运行. 你还可以 下载示例音乐(如果你手头没有音频文件的话) 文件列表:b

Three.js + HTML5 Audio API 打造3D音乐频谱,Let’s ROCK!

继续玩味之前写的音乐频谱作品,将原来在Canvas标签上的 作图利用Three.js让它通过WebGL呈现,这样就打造出了一个全立体感的频谱效果了. 项目详情及源码 项目GitHub地址:https://github.com/Wayou/3D_Audio_Spectrum_VIsualizer/tree/master 在线演示地址:http://wayou.github.io/3D_Audio_Spectrum_VIsualizer 如果你想的话,可以从这里下载示例音乐:http://pan.b

HTML5 Canvas API详解

HTML5 是一个新兴标准,它正在以越来越快的速度替代久经考验的 HTML4.HTML5 是一个 W3C "工作草案" - 意味着它仍然处于开发阶段 - 它包含丰富的元素和属性,它们都支持现行的 HTML 4.01 版本规范.它还引入了几个新元素和属性,它们适用许多使用 web 页面的领域 - 音频.视频.图形.数据存储.内容呈现,等等.本文主要关注图形方面的增强:canvas. 新的 HTML5 canvas 是一个原生 HTML 绘图簿,用于 JavaScript 代码,不使用第三

《HTML5实战》——1.4 其他API和规范

1.4 其他API和规范 如前所述,HTML5技术并不仅限于HTML5规范本身,还有大量的其他技术和规范,定义了很多新的功能.现在,很多浏览器厂商都在他们最新版的产品中稳步实现着这些功能,这其中包括地理定位API.IndexDB API.文件阅读器.文件编辑器.File System API,以及SVG和WebGL. 本节主要学习内容 地理定位API及其使用方法. IndexDB API,以及如何利用它在客户端构建数据库. 面向文件的规范,以及如何利用它将文件保存在用户的本地文件系统中. SVG