mozilla
Risultati di ricerca

    IndexedDB

    Questa traduzione è incompleta. Collabora alla traduzione di questo articolo dall’originale in lingua inglese.

    IndexedDB è una API per la memorizzazione client-side di una considerevole quantità di dati strutturati e per una ricerca performante su questi dati mediante gli indici. Se DOM Storage è utile per memorizzare piccole quantità di dati, è ancora meno utile per memorizzare grandi quantità di dati strutturati. IndexedDB fornisce la soluzione. Questa è la pagina principale su IndexedDB di MDN — qui vengono forniti link a tutti i riferimenti API e guide all'uso, dettagli di supporto al browser ed alcune spiegazioni dei concetti chiave.

    Concetti chiave ed uso

    IndexedDB è un sistema di database transazionale, che inizialmente potrebbe creare confusione se si è abituati a lavorare solo con i database relazionali, ma presto diverrà abbastanza chiaro. IndexedDB permette di memorizzare e recuperare oggetti indicizzati con una chiave. E' necessario specificare lo schema del database, aprire una connessione al proprio database e poi recuperare ed aggiornare i dati attraverso una serie di transazioni.

    Nota: Come molte soluzioni web storage, IndexedDB segue una same-origin policy. Quindi mentre si può accedere ai dati memorizzati sotto un dominio, non è possibile accedere ai dati attraverso domini differenti.

    Sincrono e asincrono

    IndexedDB include sia una API asincrona che una API sincrona. La API asincrona può essere usata in molti casi, incluso WebWorkers, mentre la API sincrona è designata ad essere utilizzata solo con Web Workers e sarà usata molto raramente.

    Nota: Attualmente, nessuno dei principali browser supporta la API sincrona.

    Limiti di memorizzazione

    Non c'è alcun limite alla dimensione di un singolo elemento del database, tuttavia ci potrebbe essere un limite ad ogni dimensione complessiva del database IndexedDB. Questo limite (ed il modo con cui l'interfaccia utente lo supporterà) potrebbe variare da un browser ad un altro:

    Asynchronous API

    The asynchronous API methods return without blocking the calling thread. To get asynchronous access to a database, call open() on the indexedDB attribute of a window object. This method returns an IDBRequest object; asynchronous operations communicate to the calling application by firing events on IDBRequest objects.

    Connecting to a database

    IDBEnvironment
    Provides access to a client-side database. It is implemented by the window and worker objects.
    IDBFactory
    Provides access to a database. This is the interface implemented by the global object indexedDB and is therefore the entry point for the API.
    IDBOpenDBRequest
    Represents a request to open a database.
    IDBDatabase
    Represents a connection to a database. It's the only way to get a transaction on the database.

    Accessing results of database requests

    IDBRequest
    Provides access to results of asynchronous requests to databases and database objects. It is what you get when you call an asynchronous method.

    Retrieving and modifying data

    IDBTransaction
    Represents a transaction. You create a transaction on a database, specify the scope (such as which object stores you want to access), and determine the kind of access (read only or write) that you want.
    IDBObjectStore
    Represents an object store.
    IDBIndex
    Provides access to the metadata of an index.
    IDBCursor
    Iterates over object stores and indexes.
    IDBCursorWithValue
    Iterates over object stores and indexes and returns the cursor's current value.
    IDBKeyRange
    Defines a range of keys.

    Deprecated interfaces

    An early version of the specification also defined these now removed interfaces. They are still documented in case you need to update previously written code:

    IDBVersionChangeRequest
    Represents a request to change the version of a database. The way to change the version of the database has since changed (by calling IDBFactory.open without also calling IDBDatabase.setVersion), and the interface IDBOpenDBRequest now has the functionality of the removed IDBVersionChangeRequest.
    IDBDatabaseException 
    Represents exception conditions that can be encountered while performing database operations.

    Synchronous API

    Important: This is a reminder that the synchronous version of IndexedDB is not yet implemented in any browser.

    To get synchronous access to a database, call open() on the Unimplemented indexedDBSync attribute of a worker object. This returns an IDBDatabaseSync object, which enables you to create, open, and remove object stores and indexes, set the version of the database, and create transactions.

    Examples

    Browser compatibility

    Feature Chrome Firefox (Gecko) Internet Explorer Opera Safari (WebKit)
    Asynchronous API

    11.0 webkit
    24

    4.0 (2.0) moz
    16.0 (16.0)
    10 17 Not supported
    Synchronous API
    (used with WebWorkers)
    Not supported Not supported
    See bug 701634
    Not supported Not supported Not supported
    Feature Android Firefox Mobile (Gecko) IE Phone Opera Mobile Safari Mobile
    Asynchronous API 4.4 6.0 (6.0) moz
    16.0 (16.0)
    10 17 Not supported

    Note: Some browsers don't yet support IndexedDB but do support WebSQL, most notably Safari/Webkit on desktop and iOS. One way around this problem is to use an IndexedDB Polyfill or Shim that falls back to WebSQL or even localStorage for non-supporting browsers. The best available polyfill at present is localForage.

    Specifications

    Specification Status Comment
    Indexed Database API Candidate Recommendation  

    Etichette del documento e nomi di chi ha collaborato alla sua stesura

    Contributors to this page: unziojack
    Ultima modifica di: unziojack,