Hay dos Opciones:
●Web Storage->No SQL
●Web databases-> SQL
WEBSTORAGE: El almacenamiento DOM(DOM Storage) es elnombre dado al conjunto de características relacionadas con e lalmacenamiento introducidas en la especificación de aplicaciones web 1.0 y ahora detalladas porseparado en su propia especificación W3C WebStorage.
●SessionStorage: Estan disponibles localmente.
●LocalStorage:Estan disponibles en todo eldominio.
Son cookies mejoradas:
– Separacion de datos de session y datos a largo plazo.
Firefox política de seguridad:
var cookiesEnabled = (function () {
// valor id de pruebavar id = new Date().getTime();
// generate a cookie to probe cookie accessdocument.cookie = ‘__cookieprobe=’ + id + ‘;path=/’;//si la cookie se establece ok.
return (document.cookie.indexOf(id) !== -1);}) ();
Cookies habilitadas ↔ Permiso de escritura
CARACTERÍSTICAS:
●readonly attribute unsigned longlength;
●getter DOMString key(inunsigned long index);
●getter any getItem(in DOMStringkey);
●setter creator void setItem
● (in DOMString key, in any data);
●deleter void removeItem(inDOMString key);
●void clear();
Formas de acceder a lo almacenado->1-expandos
Los expandos son la forma corta y expresiva de establecer y obtener valores de nuestro almacenamiento.
sessionStorage.nombre = ‘Serg Vergara ’;
alert( sessionStorage.nombre );
Formas de acceder a lo almacenado->2-Método «de la llave»
Este método recibe un argumento que es unentero y retorna la llave asociada a ese índice, como en un arreglo indexado.
Nombre=Serg ->
sessionStorage.key(i) → Nombre
sessionStorage.getItem( sessionStorage.key(i) ) ); → Serg
Eliminando datos
Hay dos formas de eliminar datos del objeto destorage (session y local ).
RemoveItem → toma como argumento la llave.
Clear → elimina todas las entradas.
sessionStorage.setItem(‘serg’, “prueba”);
sessionStorage.removeItem(‘serg’); → elimina el dato con valor “prueba”
Almacenando algo mas que Strings
Una respuesta temporal es el uso de JSON y sus metodos, para cualquier objeto hay una imagen string gracias a JSON.
Var serg = {profesion: “investigador”,SO:”linux”}
sessionStorage.setItem(‘Serg’, JSON.stringify(dany) );
//luego podemos volver a trabajar como objeto
var Persona = JSON.parse(sessionStorage.getItem (‘serg’));
Persona.profesion → “investigador”
Fallback
if (typeof sessionStorage === ‘undefined’) {
sessionStorage = (function () {
var data = window.top.name ? JSON.parse(window.top.¬ name) : {};
return {clear: function () {
data = {};
window.top.name = ‘’;
},getItem: function (key) {
return data[key] || null;
},key: function (i) {
// not perfect, but works
var ctr = 0;
for (var k in data) {
if (ctr == i) return k
else ctr++;
}
},
removeItem: function (key) {
delete data[key];
window.top.name = JSON.stringify(data);
},
setItem: function (key, value) {
data[key] = value+’’;
// forces the value to a¬ string
window.top.name = JSON.stringify(data);
}
};
})
();
}
DOCUMENT STORE
Almacenan una colección de documentos, los cuales se identifican con id único.
A partir de ese id se pueden ir cargando diferentes atributos, cuyos valores pueden ser cadenas de texto, números, fechas, listas ordenadas y mapas asociativos.
Ejemplo:
MySQL
Tabla categoría:
-idcategoria: integer: PRIMARY KEY
-nombrecategoria:char(30)
Tabla producto:
-idproducto: integer:PRIMARY KEY
-nombreproducto char(30)
-idcategoria:integer
NoSQL mongodb
{producto:»Perdiz escabechada», categoria:[«carne»,»conserva»]}
{producto:»Naranja»,categoria:»fruta»]}
BASES DE DATOS NoSQL populares
Propietarios
Google BigTable
Amazon SimpleDB
Libres
Cassandra
MongoDB
cassandra vs mongodb
Cassandra: Escrito en java, liberado por facebook en el año 2008 y ahora lo mantiene la comunidad apache. Es usado por facebook, twitter, reddit…
Mongodb: Escrito en c++, lanzado por la empresa 10gen en el año 2009. Es usado por foursquare, bit.ly,sourceforge, github, disqus, grooveshark…
ejemplos-webstorage.zip.odt -> OJO! QUITAR LA EXTENSIÓN .odt!!