2016-07-18 3 views
0

Ich versuche, Aura Storage Facility zu verwenden, um einige Diagrammdaten auf einer Client-Seite zu speichern. einen Speicher erstellen i verwenden:Aura Storage - hält Daten für ein paar Sekunden? (sollte für eine lange Zeit halten)

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; 
     } 

Und es funktioniert, ich dort einige Daten durch Ausführen speichern kann:

storage.set("graphData", data); 

und Abrufen von Daten von:

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 
       { 
        ..... 

Aber nach 8- 10 Sekunden, wenn ich versuche, Daten wieder aus dem Speicher abrufen, gibt der Speicher undefined zurück (wie die Daten wurden entfernt). Aber warum so schnell? Ich spielte mit verschiedenen Initialisierungsparametern, aber es änderte nichts.

Antwort

0

ok, ich habe festgestellt, dass die Dokumentation irreführend ist (falsch).

durch in der Komponente sucht (durch Debug-Konsole) i unterschiedliche Eigenschaften gefunden:

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" 

nach der Einstellung Ablauf Parameter (statt defaultExpiration), begann alles wie erwartet funktioniert. Jetzt benutze ich

expiration : 600, 

für 10 Minuten Ablauf

Verwandte Themen