2012-08-14 25 views
9

Modifica: Lasciami provare a chiarire con un caso d'uso. Mi piacerebbe essere in grado di eseguire una semplice chat-box su una pagina html/javascript senza eseguire my -own-server. Posso scrivere bene il javascript dell'applicazione chat, ma non ho una soluzione che mi permetta di memorizzare i dati per rendere i messaggi di chat visibili a tutti gli utenti che navigano. Pertanto, la mia app accetta i dati, li pubblica in un archivio dati di terze parti (idealmente solo in formato json) e esegue periodicamente il polling dall'archivio dati per gli aggiornamenti. Questa non è l'unica cosa che utilizzerei come servizio di archiviazione JSON/JSON per, ma è l'esempio più chiaro.Quali sono i modi per ottenere storage persistente e condivisibile solo in html e javascript?


Sto sostenendo di distanza dal lato server di programmazione un po 'come HTML5 viene alla ribalta, ed esplorare quanto posso fare solo con HTML e JavaScript, in termini di funzionalità che in precedenza avrebbero per raggiungere con uno stack di server html/php/sql. Ad esempio, su questo sito html5 nascente: http://tersh.royronalds.com/ sto riutilizzando flickr per l'hosting di immagini e tumblr per l'hosting di post di blog. Tuttavia, proprio come un esempio, ora mi trovo a voler codificare un elenco di cose da fare dinamico, qualcosa in cui gli articoli possono essere aggiunti e spuntati come completati e visualizzati pubblicamente durante quel periodo. Un altro esempio potrebbe essere una casella di chat semplice e persistente. Ad esempio, invece di usare ajax per inviare dati booleani e testo sui messaggi di chat e le modifiche a uno script php che quindi memorizza i dati in un database mysql, mi piacerebbe spingere e tirare i dati da/a un negozio di terze parti che fornisce in qualche modo lo stesso tipo di funzionalità dell'API di localstorage, ma per json.

Quindi mi piacerebbe risolvere quello utilizzando un metodo di archiviazione con un'API js pubblica, ad es. un metodo per archiviare json, o qualsiasi formato finale che supporta realmente stringhe e numeri, ed è memorizzabile e recuperabile, simile a localStorage, tranne che persistente e condivisibile.

Quali tecnologie/soluzioni pubbliche ci sono per una cosa del genere?

+0

in pratica devi solo essere in grado di leggere e scrivere da e verso un db utilizzando solo js? –

+1

forse prova il disco rigido di google (https://developers.google.com/drive/v2/reference/)? Immagino che qualsiasi cosa pubblica di uso generale con cui andrai sarà molto più complicata di stare in piedi in un ambiente di condivisione condiviso semplice ed economico con poche righe di codice per chiudere il database. Nei siti moderni, i backend si stanno trasformando in nient'altro che pompe json ma sono ancora lì ... – Hersheezy

+0

Sì, solo js sul sito. Ovviamente il motore di archiviazione potrebbe essere qualsiasi cosa fosse necessaria sul server di terze parti, anche se mi aspetto che non debba essere complesso. Controllerò le informazioni su google drive, vediamo se farebbe quello che sto cercando. Mentre sì, mi aspetto che lavorare con l'API di qualcun altro sarà più complicato da implementare, significherebbe che non dovrei eseguire php/apache/mysql o anche node.js/mongodb su un server per istanza di sito, e il le persone per cui il sito è in grado di ospitare la pagina ovunque che ospita file html statici, pur mantenendo funzionalità robuste. – Kzqai

risposta

1

Ci sono poche opzioni per questo, anche se non sono molto belle o ben sviluppate.

Prima di tutto, quello più strettamente correlato a un database lato server è un database SQL Web. Questa funzione non è raccomandata dal W3C (non utilizza SQLite come back-end), tuttavia è attualmente supportata in Chrome, Opera, Safari e Firefox (con un componente aggiuntivo).

Spec

In secondo luogo, abbiamo indicizzato Database API. Questi sono supportati solo da Chrome e Firefox. (E IE 10, ma a chi importa?) È più diverso da un normale database, ma è un metodo consigliato dal W3C.

Spec

In terzo luogo, abbiamo storage locale. Questo non è un sistema simile a un database, è più simile ai cookie. Tuttavia, questi elementi di archiviazione locali sono migliori dei cookie perché sono ciascuno una coppia chiave-valore (e molto intuitivo da usare, potrei aggiungere). Per esempio:

// 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

In quarto luogo, si dovrebbe forse prendere una rapida occhiata al offline HTML. Questo è un sistema in cui i file selezionati nel tuo sito vengono scaricati dal browser e possono essere utilizzati offline. Non penso sia utile per te, ma dai un'occhiata.

Spec
Helpful Guide

Come si può essere in grado di dire, ho avuto più esperienza negli ultimi due rispetto alla prima. Spero di essere stato utile comunque.

+0

Sì, ho familiarità con l'archiviazione solo su sé stessi ed è bello ricordare le opzioni disponibili, in particolare amo localStorage, ottimo per salvare le impostazioni, ma ovviamente non condivisibile. Un ottimo caso d'uso per spiegare un esempio del tipo di problema che sto cercando di risolvere è la codifica di una semplice finestra di chat visibile a tutti gli utenti, senza eseguire uno stack completo del server solo per salvare poche righe di chat. – Kzqai