2013-03-27 21 views
5

Ho aggiunto cache nella mia applicazione con $ cacheFactory, ma quando l'utente chiude il browser e quindi riapre, i dati della cache relativi ai prodotti sfogliati sono scaduti.

C'è un modo per renderlo più lungo? metti una data di scadenza o qualcosa del genere?

Grazie.

Edit: vorrei forse dovuto usare Breeze.js, ma prima di questo ho voluto sapere se qualcuno di voi sa se è possibile farlo con angularjs (ho letto l'API e non c'è informazioni a riguardo: S).

Modifica 2: per aiutare, il modo in cui utilizzo $ cacheFactory è come questo JSFiddle code.

factory('SomeCache', function($cacheFactory) { 
    return $cacheFactory('someCache', { 
     capacity: 3 // optional - turns the cache into LRU cache 
    }); 
}). 

Edit 3: Lawnchair non è un'opzione, memorizza in un array JavaScript e non persiste i dati dopo la chiusura del browser ..

risposta

7

$ cacheFactory utilizza l'archiviazione del browser in-memory, il che significa che non persiste nemmeno su un aggiornamento della pagina, tanto meno chiudendo e riaprendo il browser.

Se si desidera memorizzare nella cache i dati tra i carichi di pagina e le sessioni del browser, si sta cercando localStorage. Vedi qui per un esempio molto semplice:

http://jsbin.com/acokis/2/edit

Penso che si vorrà guardare amplify.js o lawnchair.js in quanto forniscono piacevoli wrapper per la gestione localStorage, anche forniscono anche gli adattatori di ripiego per i browser che non supportano localStorage (le opzioni di fallback non permarranno comunque attraverso gli aggiornamenti delle pagine).

+0

+1 per sedia a sdraio. –

+0

per informazioni sui negozi, forse la sedia a sdraio può adattarsi a quello che mi serve, brezza sembra più avanzata, forse troppo per quello di cui abbiamo semplicemente bisogno .. grazie! – QuarK

+0

La sedia a sdraio non persiste dopo aver chiuso il browser. – QuarK