资讯专栏INFORMATION COLUMN

Web存储之LocalStorage初探

ityouknow / 1250人阅读

摘要:存储之初探的发布和定稿为前端界带来巨大的变化,新增的和特性给业务带来了更多可能性,让用户体验拥有了更可能的丰富。只读返回一个整数,表示存储在对象中的数据项数量。会在过期时间之后销毁。安全性方面,中一般不建议存储敏感信息。

Web存储之LocalStorage初探

HTML5的发布和定稿为前端界带来巨大的变化,新增的API和特性给业务带来了更多可能性,让用户体验拥有了更可能的丰富。

· HTML Geolocation 可以定位到用户的地理位置
· HTML Drag and Drop 拖拽API,可以实现更简单有效的交互方式
· HTML Local Storage 本地存储方案, 配合离线缓存可以实现WebApp的本地化
· HTML Application Cache 离线缓存,可以将WebApp离线到本地使用
· HTML Web Workers JS版多线程,适合一些计算密集型的业务
· HTML SSE Server-sent Event 服务器推送技术,可以把主动权交给服务器端,往客户端主动推送数据、消息
· HTML Canvas/WebGL HTML图像处理API,能够实现更绚烂和丰富的效果
· HTML Audio/Video HTML音视频API,能够更方便处理音视频

今天,我就来简单介绍一下LocalStorage 这个本地存储。

首先来看一下 关于 Storage 的API。

Storage.length 只读

返回一个整数,表示存储在 Storage 对象中的数据项数量。

Storage.key()

该方法接受一个数值 n 作为参数,并返回存储中的第 n 个键名。

Storage.getItem()

该方法接受一个键名作为参数,返回键名对应的值。

Storage.setItem()

该方法接受一个键名和值作为参数,将会把键值对添加到存储中,如果键名存在,则更新其对应的值。

Storage.removeItem()

该方法接受一个键名作为参数,并把该键名从存储中删除。

Storage.clear()

调用该方法会清空存储中的所有键名。

LocalStorageSessionStorage 共同实现了这些API,可以看到API非常简单,只有5个API函数和一个只读length属性,我们先看一下LocalStorage 的 DEMO,里面示范了除了key() 函数之外的API。

rLVvMN

可以看到,storage 的API用例还是很简单的。

还有一个storage 的 Event事件,在LocalStoragesessionStorage 变更的时候会触发一个Storage 的事件,但是只能在同源策略下触发,并且在当前窗口是不能触发的。也就是说在同一个浏览器中,A标签页变更Storage,B标签页会触发这个事件,在A里面是不行的,同时不在同一个浏览器里面也是无法触发的。

Storage事件的属性如下:

target         Read only       EventTarget     The event target (the topmost target in the DOM tree).
type           Read only       DOMString       The type of event.
bubbles        Read only       boolean         Does the event normally bubble?
cancelable     Read only       boolean         Is it possible to cancel the event?
key            Read only       DOMString (string)  The key being changed.
oldValue       Read only       DOMString (string)  The old value of the key being changed.
newValue       Read only       DOMString (string)  The new value of the key being changed.
url            Read only       DOMString (string)  The address of the document whose key changed.
storageArea    Read only       Storage              The Storage object that was affected.

无论是LocalStoragesessionStorage 还是cookie 都有各自的优劣,下表我们来列举一下他们的对比情况。

特性 Cookie localStorage sessionStorage
数据的生命期 一般由服务器生成,可设置失效时间。如果在浏览器端生成Cookie,默认是关闭浏览器后失效 除非被清除,否则永久保存 仅在当前会话下有效,关闭页面或浏览器后被清除
存放数据大小 4K左右 一般为5MB
与服务器端通信 每次都会携带在HTTP头中,如果使用cookie保存过多数据会带来性能问题 仅在客户端(即浏览器)中保存,不参与和服务器的通信
易用性 需要程序员自己封装,源生的Cookie接口不友好 源生接口可以接受,亦可再次封装来对Object和Array有更好的支持

当然还有以下情况:

cookie由服务端生成,用于标识用户身份;而两个storage用于浏览器端缓存数据

三者都是键值对的集

cookie的话,会随http请求一起发送到服务器;而两个storage可以由脚本选择性的提交

会话的storage会在会话结束后销毁;而localStorage会一直存在直到手动销毁。cookie会在过期时间之后销毁。

安全性方面,cookie中一般不建议存储敏感信息。两个storage的数据提交后在服务端一定要校验(其实任何payload和qs里的参数都要校验)。

目前,对于LocalStorage的介绍大概就到此为止了,可能有某些错误的地方,也可能有些不准确的地方,欢迎各位指出斧正。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/59979.html

相关文章

  • Web存储LocalStorage初探

    摘要:存储之初探的发布和定稿为前端界带来巨大的变化,新增的和特性给业务带来了更多可能性,让用户体验拥有了更可能的丰富。只读返回一个整数,表示存储在对象中的数据项数量。会在过期时间之后销毁。安全性方面,中一般不建议存储敏感信息。 Web存储之LocalStorage初探 HTML5的发布和定稿为前端界带来巨大的变化,新增的API和特性给业务带来了更多可能性,让用户体验拥有了更可能的丰富。 · ...

    wpw 评论0 收藏0
  • [译] Web Storage 初探

    摘要:浏览器支持表浏览器版本及以上及以上及以上及以上及以上目前,标准是总共有五个级别的推荐。这对于数据安全来说是有益的。规范说明了当触发存储失败事件的标准的错误警告输出,比如异常。通过存储数据相对于来说可能会更加复杂一些。 原文:Web Storage: A Primer Web Storage是相对比较新的一种可以将数据存储在用户电脑(客户端)的一种方式。 Web Storage给网站/应...

    honmaple 评论0 收藏0
  • 初探IndexedDB

    背景 随着前端技术日新月异地快速发展,web应用功能和体验也逐渐发展到可以和原生应用媲美的程度,前端缓存技术的应用对这起到了不可磨灭的贡献,因此想一探前端的缓存技术,这篇文章主要会介绍在日常开发中比较少接触的IndexedDB IndexedDB 什么是IndexedDB IndexedDB简单理解就是前端数据库,提供了一种在用户浏览器中持久存储数据的方法,但是和前端关系型数据不同的是,Index...

    jsyzchen 评论0 收藏0
  • vue初探-简易留言板

    摘要:学完的基础语法之后,练手一下,从最基本的留言板开刀吧。功能不多,主要为了熟悉的基础语法使用。 学完vue的基础语法之后,练手一下,从最基本的留言板开刀吧。功能不多,主要为了熟悉vue的基础语法使用。详细vue教程请移步vue.js 2.0 技术框架 1.vue.js 2.0 2.bootstrap 语法概述 这里只写一点此例子用到的一些语法知识,详细API请移步:vue 2.0 a...

    GHOST_349178 评论0 收藏0
  • XSS全解析—初探

    摘要:持久型相当于存储型跨站脚本。这玩意儿涉及到一点和浏览器引擎解析的问题。说正事,是支持码形式的。的调用有几个概念我们先来了解一下。本来说的只用天完成的,没想到各种事儿拖了两天,。 前些时间准备面试的时候一直会遇到这个XSS,寥寥几句话好像很简单,后来看到同学的《XSS跨站脚本攻击剖析与防御》这本书,稍微翻看了一下,其中的学问还是挺多的。这系列的文章就当做读书笔记吧。 什么是XSS 听过很...

    Lucky_Boy 评论0 收藏0

发表评论

0条评论

ityouknow

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<