我正在使用localForage在网站上存储一些数据以使其脱机。
我想有一个键,并追加到值/数组。
到目前为止,我只能弄清楚如何从存储中检索整个键/值,然后追加并再次设置整个键/值。这似乎非常浪费,并且当键/值变大时可能会出现问题。
var obj = ...
localforage.getItem('documents', function(err, value) {
value.push(obj);
localforage.setItem('documents', value);
}
没有更有效的方法可以做到这一点吗?以及必须注意多少键/值
性能问题。
最佳答案
我意识到这是一个老问题,但我想提供一些信息。根据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);