在Web应用中使用localforage存储离线数据

本文介绍了在现代Web应用中,如何利用localforage这个库来优化本地数据存储。localforage提供了一个简单的API,底层利用IndexDB,当浏览器不支持时会降级到WebSQL或localStorage。这种方式解决了传统存储方式如cookie和localStorage空间有限、无法存储复杂数据的问题,为用户提供更强大的本地交互体验。
摘要由CSDN通过智能技术生成

在现代Web应用中,我们经常会需要在本地存储一些数据,一方面记住用户的一些状态,或个性化设置,尤其是可以缓存一些常用(甚至全部)的数据,实现更加强大和丰富的本地交互体验。

传统上说,我们有多种办法来存储离线数据,分别如下

方式
空间限制
优势

劣势
cookie
4kb
每个请求中会自动传递cookie
安全性低,空间太小
localstorage
5MB
可以存储更多一些数据(相对于cookie)来说,且API也很简单

sessionstorage
5MB
可以存储更多一些数据(相对于cookie)来说,且API也很简单
仅在session中有效

以上三种方式,还有一个共性,他们只能存储文本数据。所有不是文本的数据(例如一个对象,或者图片),都需要想一定办法先转化为文本,例如常见的是我们有一个数组或对象,一般都需要先用下面的方式序列化为文本

localStorage.setItem("test",JSON.stringify({name:"ares",age:18}))

然后,如果你要读出来的话,又需要反序列化,例如

const data = JSON.parse(localStorage.getItem("test"))

另外要命的问题就是空间太小

所有一些牛人又发明了 IndexDB和WebSQL的方式,他们都类似于本地数据库的方式,可以存储更复杂的数据,以及更大量的数据(几乎不限)。

5c9d93a454e589c5a76a8a0cae3e5c78.png

两者很类似,区别在于 WebSQL出现更早一些,但它不是HTML5规范的一部分。IndexDB则属于HTML5规范的一部分,所以更加推荐使用。

你可能很高兴,想赶紧学习一些IndexDB的知识吧,当然你可以通过这里学习:https://developer.mozilla.org/zh-CN/docs/Web/API/IndexedDB_API

但是你别急,我今天跟你推荐的方式是用一个更加简单的API,localforage, 它采用了类似于localstroage的简单API语法,但是会默认使用IndexDB来进行存储数据,在必要时也可以降级为WebSQL或localstorage。是不是很香呢?

https://localforage.github.io/localForage/

96238c6440447dd5580f1c65e554868f.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值