2016-03-06 9 views
6

Quello che sto facendo è salvare e recuperare molte immagini sul client.Ottimizzazione: Ottieni valore specifico (e non di più) da IndexedDB

(Ora IndexedDB sembrava essere eccessivo per questo semplice lavoro, ma dato che era l'unica soluzione Cross-Browser senza limiti (come localStorage), ho dovuto usarlo ... e funziona)

Ecco come appare il mio db: (più specifico, l'unico objecttore del mio db)

# | chiave (timeID) | valore

0 | 812378123 | {dati: ¨ ... ¨, dati: ¨ ... ¨, timeID: 812378123}

1 | 912378123 | {Dati: ¨ .... ¨, tnData: ¨ ... ¨, timeID: 912378123}

2 ....

KeyValue è un TimeID unica, dati contiene l'immagine come testo e tnData contiene l'anteprima di questa immagine come testo (quando canvas.toBlob() è pronto mi passerà a quello)

per recuperare un'immagine mi basta usare store.get (id)

Ora tutto questo lavori.

Ma ora voglio solo caricare la miniatura (¨ tnData¨) - ma NON la vera immagine (¨data¨ che può essere abbastanza grande).

quindi spero che ci sia qualcosa di simile store.get (id, ¨tnData¨) ...

ma non ho trovato, finora. Qualcuno sa di un modo semplice per farlo, senza dover rielaborare il mio db?

Grazie in anticipo ... e scusate se non sono nel posto giusto o ho rotto qualche altra regola ... prima domanda per me;)

risposta

3

Qualcuno sa di un modo semplice di fare questo, senza dover rielaborare il mio db?

No, IndexedDB non consente di restituire solo una parte di un oggetto.

Anche se rielaborare il tuo db potrebbe non essere troppo difficile. Potresti suddividerlo in due negozi di oggetti, uno per le anteprime e uno per le immagini intere. Quindi puoi richiedere specificamente quello che desideri.

Se si ottengono contemporaneamente entrambi, è necessario eseguire alcuni benchmark e vedere se è effettivamente più veloce interromperli, o forse potrebbe anche aver senso duplicare le miniature (un archivio di oggetti come hai ora, e uno con solo miniature).

+0

Hm, questo è un peccato. Ma grazie per la risposta e i tuoi suggerimenti su come rielaborare ... anche se li ho già avuti;) – Hutzlibu

+0

E sfortunatamente, significherà un po 'di lavoro vero per me, perché il db è alquanto in uso, con il modo di archiviare e prendi le chiavi, ecc ... ma, piagnucolando, non è d'aiuto, quindi è meglio che vada ... – Hutzlibu

+0

Ma con alcuni trucchi ... nemmeno gli hack, non è stato poi così difficile dopotutto e ho finito ... – Hutzlibu