Lista 3 tipi di HTML 5 database e opzioni di storage | HTML5 Database


La nuova specifica HTML5 fornisce agli sviluppatori con diversi nuovi elementi di memorizzazione dei dati che permettono loro di creare applicazioni che iniziano a rivaleggiare con la sua linea (alias desktop) copie. Queste nuove funzionalità consentono agli sviluppatori di rendere le loro applicazioni "offline", che consente agli utenti di memorizzare le informazioni sui loro computer locali, tablet, smartphone e altri dispositivi "intelligenti".

Per alcuni esperti sviluppatori questo significa anche essere in grado di muoversi attraverso il "Walled Gardens" di Apple, Google o altri che richiedono una percentuale della vendita di una domanda. Al momento in cui scriviamo, Google e Apple erano incaricati del 30% della vendita di una domanda. Tuttavia, questo vale solo per le applicazioni installate, nessuna applicazione Web che vengono installati nel browser.




Quali sono le opzioni per lo stoccaggio sotto la nuova specifica HTML5?

  • SQL Web
  • Web Storage
  • Database indicizzato

SQL Web


Abbiamo iniziato con SQL Web. Questa API utilizza il database SQLite motore per memorizzare le informazioni sul disco rigido, come un database SQL. Fino ad oggi, e questo probabilmente rimarrà così o la regressione, Google Chrome, Apple Safari e Opera sostenere l'HTML5 Web SQL. Al momento della stesura di questo tutti i lavori (http://www.w3.org/TR/webdatabase/) ferma w3.org 18 Novembre 2010, e hanno bisogno di attuare una maggiore indipendenza e nessuna base uso motore SQLite.

SQL Web consente agli sviluppatori di utilizzare SQL per creare, aprire, visualizzare e memorizzare i dati in un database relazionale format. Questa API, ma non è più supportato da w3.org è ancora disponibile per developrs che vogliono creare applicazioni "installati" per Chrome o Safari o Opera.

Ecco alcuni esempi:

Per inizializzare e creare un database

var db = OpenDatabase ("SampleDB ',' 1.0 ',' A HTML5 database di test ', 2 * 1024 * 1024, createInitTable);

Il metodo OpenDatabase accetta quattro parametri:

  • Il nome del database;
  • La versione;
  • Il titolo della banca dati;
  • La dimensione del database;
  • La funzione di callback;


Se il database non esiste, viene creato se non si apre. Una volta aperto, si chiama la funzione o qualsiasi createInitTable funzione necessaria se il database non è stato ancora creato.

Una volta che hai una maniglia sul database, è possibile utilizzare il ExecuteSQL analizzare qualsiasi istruzione SQL valida.

Per creare una tabella:

db.transaction (function (tx) { tx.executeSql ('CREATE TABLE IF NOT EXISTS foo (id, Colonna1, column2)'); } ); // Una volta creata la tabella, è possibile aggiungere una riga come questa: db.transaction (function (tx) { tx.executeSql ('CREATE TABLE IF NOT EXISTS foo (id, Colonna1, colum2)'); tx.executeSql ([id, valore1, valore2] 'INSERT INTO foo (id, Colonna1, column2) VALORI (,,) ?'); } ); / * Si potrebbe facilmente eseguire un'istruzione SELECT con il seguente codice: * / db.transaction (function (tx) { tx.executeSql ('column1 SELECT, column2 FROM foo', [], resultsFunction); } );

Il secondo parametro è simile da utilizzare se è necessario passare un valore alla matrice clausola WHERE. È necessario specificare matrice am vuoto, inoltre, non utilizzato per essere in grado di specificare una funzione di callback per gestire il risultato di nuovo. Per scorrere il set di risultati, un semplice ciclo viene eseguito


Ecco un'altra versione:

db.transaction (function (tx) { 'column2> column1 SELECT, column2 FROM foo Dove?', [3] la, funzione tx.executeSql ((tx risultati) { var res = resultset.rows.length; for (var i = 0; i <= res-1; i ++) { alert (res.rows.item (i) .text); } }; } );

archiviazione Web



Web Storage è uno storage offline semplice, anche se ha i suoi limiti. Web bagagli assume la forma di una chiave, coppia di valori e può contenere fino a 5 MB di dati. Questa è una versione migliorata del cookie. Il valore può anche contenere un JSON o XML dati. Ci sono due tipi di tipi di archiviazione HTML 5 Web: sessionStorage e localStorage.

Il sessionStorage è grande quando si ha bisogno di stoccaggio temporaneo per più operazioni in diverse finestre sullo stesso computer dalla stessa fonte.

Per utilizzare HTML5 sessionStorage per impostare un valore:

funzione foo (chiave, val) { sessionStorage.setItem (chiave, valu); }

Per recuperare un valore sessionStorage:

funzione getValue () { oggetto var = sessionStorage.getItem (chiave); }

La seconda forma di archiviazione è la localStorage Web. Come suggerisce il nome, fornisce un mezzo per memorizzare dati nel file system di un computer e durare oltre la sessione corrente (s). L'utente può scadere dati in memoria locale HTML5 su richiesta o tramite una manutenzione ordinaria programmata.

Per impostare un valore nell'oggetto localStorage:

Funzione SetAValue (chiave, valore) { window.localStorage.setItem (chiave, valore); }

Per recuperare un valore di HTML5 localStorage:

funzione getAValue () { var = someValue window.localStorage.getItem (chiave); }

Per cancellare il localStorage:

Funzione Wipeout () { window.localStorage.clear (); }

Per eliminare un elemento, in particolare localStorage:

Funzione RemoveItem (chiave) { window.localStorage.removeItem (chiave); }

Entrambe le forme di stoccaggio Web stoccaggio ereditare e in quanto tali, entrambi utilizzano gli stessi metodi. Oltre a questi metodi, c'è anche la memorizzazione eventi.

Base dati indicizzati (IndexedDB)



La forma finale di opzioni di storage HTML5 è l'opzione di database di indicizzazione. Il database come oggetti chiave indicizzate titoli, oggetti di valore, come il Web Storage e avere un indice costruito. Le registrazioni possono essere recuperati da il numero della chiave o indice e ricerca possono essere eseguite sui dati. Il database indicizzato può essere implementato usando il B-tree

Una sorgente (o sorgenti) possono avere un diverso database, che a sua volta, può avere più archivi dati. Inoltre, ogni database deve avere un nome. Anche il HTML5 IndexedDB è un database transazionale.

Ad oggi, l'IndexedDB è solo parzialmente realizzato con Google Chrome e Firefox. Internet Explorer è in fase di sviluppo e dovrebbe essere rilasciato con IE 10 quindi potrebbe prendere un anno o più per utilizzare questa tecnologia. Nessuna parola opera nei suoi piani per il IndexedDB.

Anche al tempo della scrittura, Google e Mozilla stanno attuando la IndexedDB con un prefisso: Google (Webkit) è webkitIndexedDB e Firefox è moz_indexedDB. Quindi, se si sta creando un'applicazione online che si concentrerà sui principali browser, allora avete bisogno di controllare l'applicazione corretta user_agent.

Ad esempio, per creare un database indicizzato:

if ('moz_indexedDB' nella finestra) { window.indexedDB = window.moz_indexedDB; } Else if ("webkitIndexedDB" nella finestra) { window.indexedDB = window.webkitIndexedDB; } Else { // Il browser non è compatibile }

La prossima cosa è necessario aprire il database:

Database Var; window.indexedDB.open var req = ( 'DatabaseName' 'Descrizione Database' );

Il risultato della aperta non è un database aperto, ma è una maniglia per l'evento che cattura e di processo:

req.onsuccess = function (evento) { // Fare qualcosa come restituire un riferimento al database aperto per un uso successivo database = event.result; }; req.onerror = function (evento) { // Gestire l'errore alert ('Impossibile aprire il database!'); };

Avanti prima di poter creare depositi di oggetti (invece di tabelle), è necessario impostare la versione. Questo può essere tutto quello che vuoi:

database.setVersion req = ('1'); req.onsuccess = function (evt) {}; req.onerror = function (evt) {};

Ora è possibile creare un archivio di oggetti, aggiungere una colonna chiave e è impostata su true per aggiungere un vincolo univoco o falso,

var = dbStore database.createObjectStore (âaccountsâ, Aida, true);

quindi è possibile creare gli indici (o colonne?)

dbStore database.createIndex = ('tel', true); dbStore database.createIndex = ('Nome Account', false); dbStore database.createIndex = ('e', false); Ã ¢ Â |

Una volta che il database è impostato, è necessario aggiungere le transazioni e interrogare i dati, questi sono alcuni esempi di realizzazione di questo.

var tx = database.transaction (['conti'], IDBTransaction.READ_WRITE); dbStore = tx.objectStore ("Account");

Creare una richiesta di scrittura:

scrivere dbStore.add var = ({'tel', '555-555-0000', 'Account Name': 'MyCompany', 'e', ​​'123 da qualche parte'});

Gestire gli eventi e gli errori ortografici:

write.onComplete = function (e) {}; write.onerror = function (e) {};

Se avete bisogno di leggere dall'oggetto negozio:

richiesta var = dbStore.get ('555-555-0000');

Infine, per eliminare un record:

richiesta var = dbStore.delete ('555-555-0000');

I gestori di eventi sono le stesse vengono resi noti.

Come ho detto IndexedDB è la prima implementazione e il progetto di proposta e la realizzazione finale da parte di tutti i principali fornitori è mese se un anno o così via, a seconda di come implementare rapidamente i loro programmi e il piano di sviluppo individuale. Tuttavia una volta che un fornitore implementa una funzione, si può essere sicuri che gli altri seguiranno per restare competitiva in questo paesaggio in rapida evoluzione.

Questo avvolge la funzionalità di HTML5 storage offline è e continuerà a fornire opzioni interessanti soem per gli sviluppatori per il prossimo anno.

(0)
(0)

Commenti - 0

Non ci sono commenti

Aggiungi un commento

smile smile smile smile smile smile smile smile
smile smile smile smile smile smile smile smile
smile smile smile smile smile smile smile smile
smile smile smile smile
Caratteri rimanenti: 3000
captcha