今天在社区发现有人分享前端缓存的说明,于是想写一个js库用在自己的项目,加速、优化自己的项目,自己写毕竟不太好实现,找了一下开源社区,发现了下面这个好用的js存储库,非常不错,记录一下。
介绍
localForage 是一个快速而简单的 JavaScript 存储库。通过使用异步存储(IndexedDB 或 WebSQL)和简单的类 localStorage 的 API ,localForage 能改善 Web 应用的离线体验。
在不支持 IndexedDB 或 WebSQL 的浏览器中,localForage 使用 localStorage。
使用 localForage,只需将 JavaScript 文件放入页面即可:
<script src="localforage/dist/localforage.js"></script>
<script>localforage.getItem('something', myCallback);</script>配置
你可以通过 config() 方法设置数据库信息。可用的选项有 driver,name,storeName,version,size,和 description。
localforage.config({
driver : localforage.WEBSQL, // 使用 WebSQL;也可以使用 setDriver()
name : 'myApp',
version : 1.0,
size : 4980736, // 数据库的大小,单位为字节。现仅 WebSQL 可用
storeName : 'keyvaluepairs', // 仅接受字母,数字和下划线
description : 'some description'
});使用localForage
这个插件提供了两种API方式——回调函数和Promise的方式,根据自己习惯使用即可:
①回调函数方式:
localforage.setItem('key', 'value', function (err) {
// 若 err 不为 null,则表示出错
localforage.getItem('key', function (err, value) {
// 若 err 不为 null,则表示出错,否则 value 为 key 对应的值
});
});②Promise方式
localforage.setItem('key', 'value').then(function () {
return localforage.getItem('key');
}).then(function (value) {
// 成功获取值
}).catch(function (err) {
// 出错了
});多实例
这个插件还支持多实例方式,可以配置不同的对象。
通过 createInstance 方法,你可以创建多个 localForage 实例,且能指向不同数据仓库。所有 config 中的配置选项都可用。
var store = localforage.createInstance({
name: "nameHere"
});
var otherStore = localforage.createInstance({
name: "otherName"
});
// 设置某个数据仓库 key 的值不会影响到另一个数据仓库
store.setItem("key", "value");
otherStore.setItem("key", "value2");框架支持:
AngularJS
Angular 4+
Backbone
Ember
Vue
.....
蛮好用的,手册和开源等详细信息到github看哦:
https://github.com/xmoyking/localForage-cn