2010-08-16 23 views
26

Estoy buscando algo así como una base de datos para objetos GWT (dentro del navegador). Debe funcionar sin HTML5 o Gears (o cualquier complemento de navegador). No tiene que ser capaz de todo una base de datos puede hacer, pero las características más importantes seríaGWT "base de datos" (lado del cliente)

  • la indexación automática, en varias columnas
  • algún tipo de API o la lengua para llevar a cabo (una limitada subconjunto de) consulta

podría ser un poco similar a Taffy DB, pero debe han automatizado de indexación, y debe proporcionar una API de GWT. Espero, sería incluso más pequeño en tamaño de descarga que Taffy, si reutiliza el código de la biblioteca de GWT.

(Tal vez debería añadir que no necesito de almacenamiento permanente. Está bien, si los datos han de ser recargado/regenerado cuando los accesos de los usuarios recargan.)

+0

1 Al igual que el enlace de Taffy DB – naikus

+1

Podría explicar un poco más sobre por qué necesita esto? Si solo desea guardar algunos viajes redondos al servidor, ReqeuestFactory de GWT 2.1 debe hacer eso por usted (AFAIK) - maneja el almacenamiento en caché, actualizaciones, etc. –

+0

@Igor: Tengo un modelo de datos en el cliente. El modelo no es extremadamente grande, pero necesito consultarlo muy a menudo por diferentes (combinaciones de) claves. Una solución sería no utilizar ningún índice, y siempre iterar a través de todos los datos, lo que es bastante ineficiente. Otra solución es crear muchos HashMaps y mantenerlos actualizados de forma manual cuando el modelo cambie. Pero lo que realmente me gustaría tener es una estructura de datos o sistema que mantenga los índices actualizados automáticamente, y me permita consultar el modelo por diferentes aspectos. Por cierto, no encuentro mucha información sobre RequestFactory en la Web. –

Respuesta

5

XBSDB parece ser una buena biblioteca para el cliente db plus indexing solution.

+0

¡Esto es absolutamente genial!No puedo creerlo, no lo encontré (y está solo en la 4ª página de Google cuando busco una base de datos de JavaScript). Se trata de 32k de JavaScript comprimido: me pregunto cuánto más pequeño podría ser si estuviera basado en GWT (asumiendo que muchas clases como HashMap ya están cargadas ...) ¡Pero creo que es un proyecto maravilloso! Gracias por el enlace. –

+0

:) no hay problema, solo hice una búsqueda rápida en google;). ¿Estoy recibiendo la recompensa? .. lolz, eso es un poco codicioso. –

+0

gracias un trillón, marqué 1K. –

0

¿Has mirado en SQLite? Esto es un práctico tutorial de vídeo ...

http://www.youtube.com/watch?v=DZSZIfhzc3A

+0

Veo ahora que mi pregunta probablemente no esté clara en este punto: dije "Debe funcionar sin HTML5 o Gears". - pero lo que quiero decir con eso, es que debería funcionar en todos los navegadores compatibles con GWT (tal vez excepto en los muy antiguos), sin que el usuario instale nada (ni siquiera Flash). Estoy hablando de una solución pura de JavaScript (como Taffy). –

2

Usted puede echar un vistazo a itemscript, tiene una memoria "base de datos", que se puede consultar usando fragmentos de URL REST-similares. No lo he intentado pero parece prometedor. Tengo que estar de acuerdo con tdavies en que si te gusta Taffy, escribir JSNI wrapper es una tarea bastante trivial.

Hace algún tiempo creé un sistema de base de datos simple en memoria en GWT, donde aproveché la interfaz existente de Comparador para ordenar, creó la interfaz de filtro simple y la consulta simple utilizada para almacenar cualquier cantidad de comparadores y filtros. Clase de ModelManager genérico simple que almacenaba objetos de modelo en una de las clases de colección y estaba ejecutando mis consultas. Funcionó bastante bien, incluso sin ningún soporte para la indexación.

No encontrará ninguna solución existente para su problema, pasé gran cantidad de tiempo buscando una. Aparte de eso, ¿por qué no probar HTML5?

+0

ItemScript es una buena idea, una API REST puede ser realmente útil. | Un homegrown es la solución más probable para mí, también. | HTML5: la aplicación debe al menos ejecutarse en IE7 (ya estoy contento, que probablemente pueda soltar IE 6) ... –

1

¿Has mirado el almacén de datos de Dojo?

No estoy seguro de qué tan bien se adapte a sus necesidades específicas, pero es una solución de JavaScript pura. Al igual que gran parte de Dojo, la documentación puede ser un poco difícil de clasificar, pero hay un artículo sobre el uso de Dojo Grid y el patrón básico de MVC en developerWorks que puede interesarle.

http://www.ibm.com/developerworks/web/library/wa-aj-dojogrid/index.html

aplausos.

+0

No encuentro nada acerca de la indexación automatizada, pero parece una buena biblioteca, gracias por la ¡enlazar! –

0

Le sugiero que reconsidere su diseño, los navegadores no son las aplicaciones más receptivas en un buen día por una variedad de razones. Además de esto, el diseño de incrustación de una base de datos en la sesión del navegador (no importa cuán ligero) es colocar demanda explícita en el thin client. El thin client puede o no tener los recursos para soportar los requisitos.

Si tiene control explícito sobre los clientes ligeros (¿ambiente corporativo?), Sería mejor aprovechar algunas tecnologías de escritorio o applets (java?) Fuera del contexto inmediato del navegador.

+0

Sin control sobre los clientes. Cualquiera puede usarlo, de forma gratuita (siempre que tengan habilitado JavaScript, pero eso es obligatorio para las aplicaciones GWT de todos modos). El rendimiento no es un problema en los navegadores modernos, siempre que el modelo no sea demasiado grande y siempre que utilice índices (como lo han hecho otros). De hecho, es mucho más rápido para los usuarios, cuando el modelo se puede consultar localmente. Además, ahorra mucho ancho de banda. El modelo está fuertemente interconectado y se puede consultar de muchas maneras, por lo que es realmente lo mejor para el usuario. Y mantener el modelo local es IMO el camino a seguir para las aplicaciones web modernas. –

+0

Supongo que no le preocupan las plataformas móviles que pueden tener limitaciones de recursos, aunque suena interesante, así que en el futuro, retroceda cómo evoluciona la solución –

0

He escrito una pequeña biblioteca para hacer el almacenamiento del lado del cliente en GWT. Se basa en el almacenamiento local y funciona en todos los navegadores HTML5 (incluidos los navegadores de teléfonos inteligentes). Le permite almacenar datos en almacenes de objetos y bases de datos.

Puede verificarlo aquí, y ver si cumple con sus necesidades: https://code.google.com/p/gwt-localstorage-db/

Cuestiones relacionadas