In che caso sarebbe indexedDB essere utile [duplicato]

11

Recentemente ho visualizzato overdate indexedDB e non riesco a trovare un caso d'uso adatto che non sarebbe stato meglio utilizzando un database lato server. Dato che la piccola competizione di hackathon che sto facendo con i miei amici sta creando un'app per il web dell'agenda, inserirò i miei esempi in quel concorso.

Per sicurezza, leggo che indexedDB è archiviato per sito per browser. Se è così, le seguenti idee non hanno senso:

  • Memorizzazione delle preferenze dell'utente. Dal momento che un utente vorrà molto probabilmente che le sue preferenze vengano salvate su più dispositivi, sarebbe meglio salvarlo sul lato server.
  • Archiviazione di elementi / data visualizzati di recente. Poiché questi dati non sono strutturati e non i dati che dovranno persistere per un lungo periodo, non sarebbe più semplice utilizzare localStorage.

Potrei andare avanti con idee che si adatterebbero meglio con un DB lato server, localStorage o sessionStorage, quindi per tagliare al sodo, quali sono alcuni esempi di casi d'uso che potrebbero risolvere bene indexedDB?

    
posta an earwig 22.04.2015 - 01:51
fonte

1 risposta

17

I database relazionali lato server sono ottimi per essere un archivio dati primario normalizzato. Tuttavia, in molti casi:

  • La memorizzazione persistente dei dati non è necessaria perché i dati possono essere facilmente ricalcolati o recuperati nuovamente
  • Aggiunge troppa latenza per fare una richiesta HTTP minima di ~ 50ms ogni volta che vuoi accedere ai dati
  • Fare richieste frequenti ai dati che è improbabile che siano cambiati sul lato server metterebbe eccessivo sforzo sul database.

In questi casi indexedDB può essere adatto, che è più spesso nel contesto di una sofisticata applicazione web.

Un esempio più chiaro potrebbe essere quello di guardare le tabelle create da qualcosa come Google Docs / Drive:

Suppongo che in questo scenario indexedDB possa essere usato in diversi casi come:

  • Memorizzando le modifiche senza dover sincronizzare ogni singolo carattere, torna immediatamente al server
  • Garantire che le modifiche possano essere sincronizzate con il server la prossima volta che la pagina viene aperta anche se l'utente ha chiuso il suo browser immediatamente dopo aver effettuato le modifiche in origine
  • Evitare di dover ricaricare cose che non cambiano molto spesso, come un elenco di caratteri o risorse di immagini ogni volta che la pagina viene ricaricata.

indexedDB è particolarmente utile se si desidera un client che può essere utilizzato senza una connessione Internet, che sta diventando sempre più importante in quanto le applicazioni basate su browser sostituiscono sempre più applicazioni desktop.

    
risposta data 22.04.2015 - 05:15
fonte

Leggi altre domande sui tag