Aura Storage - 将数据保存几秒钟? (应长期保存)
Aura Storage - keeps data for a few seconds? (should keep for a long time)
我正在尝试使用 Aura 存储设施在客户端存储一些图形数据。创建我使用的存储:
function getStorage() {
var storageName = "GraphsData";
var storage = $A.storageService.getStorage(storageName);
if (!storage) {
console.log("creating storage...");
storage = $A.storageService.initStorage({
name: storageName, // name
persistent: true, // persistent
secure: true, // secure
maxSize: 1024*1024*10, // maxSize in bytes
defaultExpiration : 60000, // defaultExpiration (seconds)
defaultAutoRefreshInterval: 60000, // defaultAutoRefreshInterval (seconds)
debugLoggingEnabled: true, // debugLoggingEnabled
clearStorageOnInit: false, // clearStorageOnInit
version: "1.0" // version
});
}
console.log("storage: " + storage);
return storage;
}
它起作用了,我可以通过执行以下操作来存储一些数据:
storage.set("graphData", data);
并通过以下方式检索数据:
getGraphData : function() {
var storage = getStorage();
return storage.get("graphData").then( function(data) {
if (data) {
var promise = new Promise(function(resolve, reject) {
resolve(data);
});
return promise;
}
else
{
.....
但是 8-10 秒后,当我再次尝试从存储中检索数据时,存储 returns undefined(就像数据已被删除)。但为什么这么快?我尝试了不同的初始化参数,但没有任何改变。
好的,我发现文档具有误导性(错误)。
通过查看组件(通过调试控制台)我发现了不同的属性:
AuraStorage {$adapter$: MemoryAdapter, name: "GraphsData", $maxSize$: 10485760, $expiration$: 10000, $autoRefreshInterval$: 30000…}
$adapter$: MemoryAdapter
$autoRefreshInterval$ : 30000
$debugLogging$ : false
$expiration$ : 10000
$getOperationsInFlight$ : 0
$keyPrefix$ : "1.0:"
$lastSweepTime$ : 1468848393250
$maxSize$ : 10485760
$sweepInterval$ : 300000
$sweepPromise$ : undefined
$sweepingSuspended$ : false
adapter : MemoryAdapter
name : "GraphsData"
version : "1.0"
在设置 expiration 参数(而不是 defaultExpiration)后,一切开始按预期工作。
现在我用
expiration : 600,
10 分钟到期
我正在尝试使用 Aura 存储设施在客户端存储一些图形数据。创建我使用的存储:
function getStorage() {
var storageName = "GraphsData";
var storage = $A.storageService.getStorage(storageName);
if (!storage) {
console.log("creating storage...");
storage = $A.storageService.initStorage({
name: storageName, // name
persistent: true, // persistent
secure: true, // secure
maxSize: 1024*1024*10, // maxSize in bytes
defaultExpiration : 60000, // defaultExpiration (seconds)
defaultAutoRefreshInterval: 60000, // defaultAutoRefreshInterval (seconds)
debugLoggingEnabled: true, // debugLoggingEnabled
clearStorageOnInit: false, // clearStorageOnInit
version: "1.0" // version
});
}
console.log("storage: " + storage);
return storage;
}
它起作用了,我可以通过执行以下操作来存储一些数据:
storage.set("graphData", data);
并通过以下方式检索数据:
getGraphData : function() {
var storage = getStorage();
return storage.get("graphData").then( function(data) {
if (data) {
var promise = new Promise(function(resolve, reject) {
resolve(data);
});
return promise;
}
else
{
.....
但是 8-10 秒后,当我再次尝试从存储中检索数据时,存储 returns undefined(就像数据已被删除)。但为什么这么快?我尝试了不同的初始化参数,但没有任何改变。
好的,我发现文档具有误导性(错误)。
通过查看组件(通过调试控制台)我发现了不同的属性:
AuraStorage {$adapter$: MemoryAdapter, name: "GraphsData", $maxSize$: 10485760, $expiration$: 10000, $autoRefreshInterval$: 30000…}
$adapter$: MemoryAdapter
$autoRefreshInterval$ : 30000
$debugLogging$ : false
$expiration$ : 10000
$getOperationsInFlight$ : 0
$keyPrefix$ : "1.0:"
$lastSweepTime$ : 1468848393250
$maxSize$ : 10485760
$sweepInterval$ : 300000
$sweepPromise$ : undefined
$sweepingSuspended$ : false
adapter : MemoryAdapter
name : "GraphsData"
version : "1.0"
在设置 expiration 参数(而不是 defaultExpiration)后,一切开始按预期工作。 现在我用
expiration : 600,
10 分钟到期