Taffy DB, un database nel tuo browser
Sono qui ancora a cercare di capirne l'utilità: insomma, può un database che gira dentro il browser servire veramente? Intanto ne parlo, magari salta fuori qualcosa di interessante. Fa molto 2.0, comunque
Taffy DB è appunto un qualcosa di molto simile ad un database SQL che gira interamente nel browser (è scritto in JavaScript).
Potete creare "collezioni" (qualcosa di simile alle tabelle di un database) ed eseguire tutte quelle query che di solito si fanno su un DBMS. Selezione, eliminazione, update, inserimento, ecc...
Vediamo qualche esempio, così si capisce meglio.
Poniamo di voler creare una collezione di libri: cominciamo così inserendo 3 libri:
var libri = new TAFFY( [ {titolo:"IT", autore:"Stephen King", letto:"Sì", prezzo:20}, {titolo:"WordPress for dummies", autore:"Lisa Sabin-Wilson", letto:"No", prezzo:23}, {titolo:"Va dove ti porta il cuore", autore:"Susanna Tamaro", letto:"No", prezzo:12}] )
Fatto questo possiamo ad esempio cercare i libri che costano più di 13 euro:
libri.find({prezzo:{greaterthan:13}});
Ci verrà ritornato un array contenente gli indici dei libri che "matchano" la nostra query.
Per fare una query basta chiamare il metodo find() e passargli un oggetto contenente i nostri parametri. Un po' come quando includiamo le condizioni in una query aggiungendo la parola chiave WHERE
Trovate un esempio qui, il sorgente è ovviamente di facile interpretazione. Cliccate sui link presenti nel file per eseguire le query. La documentazione ufficiale è come sempre un ottimo punto dai partenza per chi vuole saperne di più...
P.s.
Era un bel po' che non scrivevo qualcosa di serio, no? ![]()
Articoli che potrebbero interessarti
Firefox 2.0.0.13Rimozione da blogbabel
Mai più senza…
Si riparte
Arbitro gay






17 Aprile 2008 alle 13:36
A livello di sicurezza il fatto che giri interamente nel browser dici che potrebbe portare a qualche limitazione?!?
17 Aprile 2008 alle 13:43
Beh, per quello che scrivo “Sono qui ancora a cercare di capirne l’utilità”.
Perché dovrei usare JavaScript per fare cose che tranquillamente faccio già con PHP/MySQL? Perché (a meno di criptare il codice, cosa comunque non troppo sicura) devo permettere a qualunque utente un po’ sgamato di avere accesso completo al database?
Per usare un db TAFFY lo vedo includere da qualche parte. Ovviamente non esiste che ci tenga dentro dati di utenti o password ad esempio.
L’unica cosa utile che mi è venuta in mente è questa:
- Stampo i dati da PHP / MYSQL in una tabella HTML
- Memorizzo la tabella del db anche in una collezione TAFFY
- Faccio query sulla collezione creata per ridistribuire i dati della tabella (ordinamenti, cancellazioni, ecc…)
Ci sono già script che fanno una cosa del genere basati su Prototype… Ma è l’unica idea che mi è venuta per utilizzare concretamente Taffy.
17 Aprile 2008 alle 13:54
Massì, sarà senz’altro utile per svincolare qualche processo di ordinamento/paginazione dal server al client.
).
E comunque vuoi che qualche genio non ci si stampi dentro le credenziali e faccia un login lato client (tanto per dire la prima assurdità che m’è venuta in mente e che gente che dico io farebbe su senza pensarci due volte…
17 Aprile 2008 alle 14:04
@Clockwise
La cosa inquietante è appunto che qualcuno lo farà.
Ieri sera fantasticando su Tabby ho pensato: “mmm, uno potrebbe fare siti web “dinamici” su spazio web che non supporta PHP/MySQL ad esempio.”
Il problema autenticazione c’è, nonostante possibili pezze da mettere (non so, ti fai un MD5 in JS e mantieni solo quello nel file, anche se non è sicuro è sempre meglio di niente), ma anche il lasciare tutto il db del sito in un file di testo, magari non criptato, è un problema IMHO.
17 Aprile 2008 alle 14:08
non ho capito una cosa: a prima vista mi pare una cosa moooolto simile a JSON..
sbaglio?
se è così, comunque, la funzionalità è di riuscire a gestire pacchetti di informazioni relazionate in modo molto semplice. può tornare decisamente utile in diversi applicativi. soprattutto service oriented: in risposta a una query ajax può essere ritornato un oggetto in quel formato già pronto per essere manipolato via js.
resta che non capisco a cosa possa servire un taffy quando esiste un json…
17 Aprile 2008 alle 15:16
@ced
JSON rappresenta solo i dati, non ti fornisce strumenti per confrontarli come fa Taffy, nonostante la sintassi sia la stessa o quasi.
17 Aprile 2008 alle 16:42
no va bene, però ci sono decine di librerie per manipolare i dati in formato json con una sintassi simile a quella di taffy.. al momento non ho link a mano, però ho usato personalmente delle funzioni “find” con json.. per dire. per questo non capisco perchè una libreria a parte invece che appoggiarsi al json… ma forse mi sfugge qualcosa
17 Aprile 2008 alle 17:09
mi correggo: mi sono guardato il codice…
taffy è esattamente una di queste librerie.
17 Aprile 2008 alle 20:06
Pure io ho difficoltà a capirne l’utilità.
Se prendiamo l’esempio dei libri si sarebbe potuto semplificare così:
var libri = {
‘Va dove ti porta il cuore’: {
‘autore’: “Tamaro”,
‘costo’: 13,
‘letto’: ‘No’
}
}
E per prendere i lbri col costo superiore a 13…
var res = [];
for(var i in libri)
if(libri.hasOwnProperty(i) && libri[i].costo > 13)
res.push(libri[i]);
Nel caso tale codice si dovesse riutilizzare si crea una funzione e via…
18 Aprile 2008 alle 05:39
Non saprei “cosa” farmene… come @Giuseppe… ad ogni modo, è sempre una novità interessante!
21 Aprile 2008 alle 07:15
Personalmente trovo molto più utile avere un db sotto il browser (come SQLlite in Firefox 3) che dentro il browser.