2012-08-14 19 views
9

Editar: Déjame intentar aclarar con un caso de uso. Me encantaría poder ejecutar un simple chat-box en una página html/javascript sin ejecutar mi propio servidor. Puedo escribir el javascript de la aplicación de chat muy bien, pero no tengo una solución que me permita almacenar los datos para que los usuarios vean los mensajes de chat. Por lo tanto, mi aplicación aceptaría datos, los publicaría en un almacén de datos de terceros (idealmente solo en formato json) y realizaría encuestas periódicamente para obtener actualizaciones del almacén de datos. Eso no es lo único que usaría para un servicio de almacenamiento JSON/motor de almacenamiento json, pero es el ejemplo más claro.¿De qué maneras hay para lograr el almacenamiento persistente y compartible solo en html y javascript?


estoy alejando de lado del servidor programar un poco como HTML5 viene a la vanguardia, y la exploración de lo mucho que puede hacer con sólo HTML y JavaScript, en términos de funcionalidad que antes habrían de lograr con una pila de servidor html/php/sql. Por ejemplo, en este sitio html5 naciente: http://tersh.royronalds.com/ Estoy reutilizando flickr para el alojamiento de imágenes y tumblr para el alojamiento de blogs. Sin embargo, solo a modo de ejemplo, ahora quiero codificar una lista dinámica de tareas pendientes, algo donde los elementos pueden agregarse y marcarse como completados, y mostrarse públicamente durante ese tiempo. Otro ejemplo podría ser un cuadro de chat simple y persistente.

Por ejemplo, en lugar de usar ajax para enviar datos booleanos y texto sobre mensajes de chat y cambios a un script php que luego almacenaría los datos en una base de datos mysql, me encantaría enviar y extraer los datos a/desde una tienda de terceros que proporciona algo del mismo tipo de funcionalidad que la API localstorage, pero para json.

Así que me gustaría resolverlo utilizando algún método de almacenamiento con una API js pública, p. Ej. algún método para almacenar json, o cualquier formato final que realmente soporte cadenas y números, y es almacenable y recuperable, similar a localStorage, excepto persistente y compartible.

¿Qué tecnologías/soluciones públicas existen para tal cosa?

+0

Básicamente, solo necesita poder leer y escribir desde y hacia un archivo DB utilizando solo js? –

+1

tal vez intente con el SDK de Google Drive (https://developers.google.com/drive/v2/reference/)? Supongo que cualquier cosa pública de propósito general con la que vayas será mucho más complicado que crear un ambiente compartido simple y barato con algunas líneas de código para completar la base de datos. En los sitios modernos, los back-end se están convirtiendo en nada más que bombas JSON, pero todavía están allí ... – Hersheezy

+0

Sí, solo js en el sitio. Obviamente, el motor de almacenamiento podría ser lo que sea necesario en el servidor de terceros, aunque espero que no tenga que ser complejo. Voy a ver las cosas de Google Drive, a ver si hace lo que estoy buscando. Si bien, espero que trabajar con la API de otra persona sea más complicado de implementar, significaría que no tendría que ejecutar php/apache/mysql o incluso node.js/mongodb en un servidor por instancia de sitio, y la los individuos para los que el sitio podría alojar la página en cualquier lugar que albergue archivos html estáticos, a la vez que tienen una funcionalidad robusta. – Kzqai

Respuesta

1

Hay pocas opciones para esto, incluso si no son muy bonitas o están bien desarrolladas.

En primer lugar, la más estrechamente relacionada con una base de datos del lado del servidor es una base de datos Web SQL. Esta no es una característica recomendada por el W3C (no usa SQLite como un back-end), sin embargo, actualmente es compatible con Chrome, Opera, Safari y Firefox (con un add-on).

Spec

En segundo lugar, hemos indexado de base de datos de API. Estos solo son compatibles con Chrome y Firefox. (E IE 10, pero ¿a quién le importa?) Es más diferente de una base de datos normal, pero es un método recomendado por el W3C.

Spec

tercer lugar, hemos de almacenamiento local. Este no es un sistema similar a una base de datos, es más similar a las cookies. Sin embargo, estos elementos de almacenamiento local son mejores que las cookies porque cada uno de ellos es un par clave-valor (y muy intuitivo de usar, podría agregar). Por ejemplo:

// Store value on the browser permanently 
localStorage.setItem('key', 'value'); 
// Retrieve value 
localStorage.getItem('key'); 
//Remove value 
localStorage.removeItem('key'); 
//This is just a small selection of actions you can perform 

Spec
Helpful Resource

En cuarto lugar, se debe tal vez echar un vistazo rápido en línea HTML. Este es un sistema donde los archivos seleccionados en su sitio son descargados por el navegador y se pueden usar sin conexión. No creo que esto sea útil para ti, pero échale un vistazo.

Spec
Helpful Guide

Como se puede ser capaz de decir, he tenido más experiencia en los dos últimos que el primero. Espero ser útil de todos modos.

+0

Sí, estoy familiarizado con el almacenamiento de solo uso y es bueno recordar las opciones disponibles, me encanta localStorage, excelente para guardar configuraciones, pero no compartible, por supuesto. Un gran caso de uso para explicar un ejemplo del tipo del problema que estoy tratando de resolver es codificar un cuadro de chat muy simple, visible para todos los usuarios, sin ejecutar una pila de servidor completa solo para guardar algunas líneas de chat. – Kzqai

Cuestiones relacionadas