【问题标题】:Append to array in localForage追加到 localForage 中的数组
【发布时间】:2015-02-25 14:44:22
【问题描述】:

我正在使用 localForage 在网站上存储一些数据以使其离线。

我想要一个键并附加到值/数组。

到目前为止,我只能弄清楚如何从存储中检索整个键/值,然后再次附加并设置整个键/值。这似乎非常浪费,并且当键/值变大时可能会出现问题。

var obj = ...
localforage.getItem('documents', function(err, value) {
  value.push(obj);
  localforage.setItem('documents', value);
}

没有更有效的方法吗?以及必须注意的键/值有多大 性能问题。

【问题讨论】:

  • 我认为这是不可能的。但是您可以使用key-1key-2 等这样的密钥来制作密钥系统。

标签: javascript offline-caching localforage


【解决方案1】:

我意识到这是一个老问题,但我想我会提供一些信息。根据 NatureShade 的观点,您无法编辑 localForage 表中的值,您只能拉取该项目并进行设置。在使用 localForage 时,我通常为频繁更改变量/对象所做的是为该项目设置一个全局变量。进行更改时,我只是更新全局变量,然后更新存储中的项目。这样做的好处是您只需要担心设置 localForage 键/值,而不必过多地处理异步方面。您还有一个变量,您也可以随时参考此信息,因此您不必一直使用 .getItem 来访问它。拥有一个全局变量可能不是最佳做法,但它是一种选择。

var globalObject;
localforage.getItem('documents', function(err, value){
    globalObject = value;
}

var obj = ...;
globalObject.push(obj);
localforage.setItem('documents', globalObject);

var obj2 = ...;
globalObject.push(obj2);    
localforage.setItem('documents', globalObject);   

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-10-22
    • 2016-08-23
    • 1970-01-01
    • 1970-01-01
    • 2011-09-03
    • 1970-01-01
    • 1970-01-01
    • 2019-05-30
    相关资源
    最近更新 更多