localForage——一个快速而简单的 JavaScript 存储库。通过使用异步存储(IndexedDB 或 WebSQL)和简单的类 localStorage 的 API

今天在社区发现有人分享前端缓存的说明,于是想写一个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



评论/留言