2016-07-18 37 views
0

我試圖使用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秒鐘,當我嘗試從存儲再次檢索數據時,存儲返回undefined(如數據被刪除)。但爲什麼這麼快?我玩了不同的初始化參數,但它沒有改變。

回答

0

好的,我發現文檔是誤導(錯誤)。

通過觀察組件(直通調試控制檯),我發現不同的特性:

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" 

設置到期參數(而不是defaultExpiration)之後,一切都開始按預期運行。 現在我用

expiration : 600, 

10分鐘期滿

相關問題