2012-08-14 11 views
9

Bearbeiten: Lassen Sie mich versuchen, mit einem Anwendungsfall zu klären. Ich würde gerne eine einfache Chat-Box auf einer html/javascript-Seite ausführen können, ohne meinen -own-server zu betreiben. Ich kann das Javascript der Chat-Anwendung gut schreiben, habe aber keine Lösung, die es mir erlaubt, die Daten zu speichern, um die Chat-Nachrichten für alle Benutzer sichtbar zu machen. Meine App würde also Daten akzeptieren, sie an einen Drittanbieter-Datenspeicher senden (im Idealfall nur im JSON-Format) und regelmäßig vom Datenspeicher nach Updates fragen. Das ist nicht die einzige Sache, für die ich eine solche JSON-Speicherdienst/JSON-Speicher-Engine verwenden würde, aber es ist das klarste Beispiel.Welche Wege gibt es, um dauerhaften, gemeinsamen Speicher in HTML und Javascript allein zu erreichen?


Ich unterstütze weg von serverseitige Programmierung ein wenig wie html5 in den Vordergrund kommt, und zu erkunden, wie viel ich mit nur HTML und JavaScript tun, in Bezug auf Funktionalität, die ich vorher erreichen müsste mit einem html/php/sql server stack. Zum Beispiel, auf dieser im Entstehen begriffenen html5-Seite: http://tersh.royronalds.com/ Ich verwende flickr für Bildhosting und tumblr für Blogposthosting weiter. Aber als Beispiel möchte ich jetzt eine dynamische Todo-Liste schreiben, in der Elemente hinzugefügt und als abgeschlossen markiert werden können und während dieser Zeit öffentlich angezeigt werden. Ein anderes Beispiel könnte eine einfache, persistente Chat-Box sein.

Zum Beispiel, anstatt Ajax zu verwenden, boolesche Daten und Text über Chat-Nachrichten und Änderungen zu einem PHP-Skript, das dann die Daten in einer MySQL-Datenbank speichern würde, würde ich gerne drücken und ziehen Sie die Daten nach/aus ein Speicher eines Drittanbieters, der die gleiche Funktionalität wie die localstorage-API bietet, aber für json.

Also würde ich gerne das mit einer Methode der Lagerung mit einer öffentlichen js API, z. eine Methode zum Speichern von JSON oder einem beliebigen Endformat, das Strings und Zahlen wirklich unterstützt und speicherbar und abrufbar ist, ähnlich wie bei localStorage, außer dauerhaft und gemeinsam nutzbar.

Welche öffentlichen Technologien/Lösungen gibt es für so etwas?

+0

im Grunde müssen Sie nur in der Lage sein zu lesen und zu schreiben und von einer db nur mit js? –

+1

Vielleicht versuchen Sie das Google Drive SDK (https://developers.google.com/drive/v2/reference/)? Ich nehme an, dass alles, was Sie für allgemeine Zwecke verwenden, viel komplizierter sein wird, als eine einfache und billige gemeinsame Umgebung mit ein paar Codezeilen zu bilden, um die Datenbank zu vervollständigen. In modernen Websites verwandeln sich die Backends in nichts mehr als JSON-Pumpen, aber sie sind immer noch da ... – Hersheezy

+0

Ja, nur js auf der Website. Offensichtlich könnte die Speicher-Engine alles sein, was auf dem Server des Drittanbieters notwendig war, obwohl ich davon ausgehe, dass es nicht komplex sein müsste. Ich werde das Google Drive Zeug überprüfen, sehen, ob es tun würde, was ich suche. Während ja, ich erwarte die Arbeit mit jemandes api wird komplizierter zu implementieren, es würde bedeuten, dass ich nicht PHP/Apache/Mysql oder sogar node.js/mongodb auf einem Server pro Website-Instanz ausführen müsste, und die Einzelpersonen, für die die Site ist, könnte die Seite überall dort hosten, wo statische HTML-Dateien gehostet werden, während sie immer noch über robuste Funktionalität verfügen. – Kzqai

Antwort

1

Dafür gibt es wenige Möglichkeiten, auch wenn sie nicht sehr schön oder gut entwickelt sind.

Zunächst einmal ist die Web-SQL-Datenbank diejenige, die am ehesten mit einer serverseitigen Datenbank zusammenhängt. Dies ist keine empfohlene Funktion des W3C (SQLite wird nicht als Backend verwendet), wird jedoch derzeit in Chrome, Opera, Safari und Firefox (mit einem Add-On) unterstützt.

Spec

Zweitens haben wir Datenbank-API indexiert. Diese werden nur von Chrome und Firefox unterstützt. (Und IE 10, aber wen interessiert das?) Es unterscheidet sich von einer normalen Datenbank, ist aber eine vom W3C empfohlene Methode.

Spec

Drittens haben wir die lokale Speicherung. Dies ist kein datenbankähnliches System, es ähnelt eher Cookies. Diese lokalen Speicherelemente sind jedoch besser als Cookies, da sie jeweils ein Schlüssel/Wert-Paar sind (und sehr intuitiv zu verwenden sind, kann ich hinzufügen). Zum Beispiel:

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

Viertens sollten Sie vielleicht einen kurzen Blick auf offline HTML nehmen. In diesem System werden ausgewählte Dateien auf Ihrer Website vom Browser heruntergeladen und können offline verwendet werden. Ich denke nicht, dass das für dich nützlich ist, aber sieh es dir an.

Spec
Helpful Guide

Wie Sie sagen, vielleicht in der Lage, habe ich mehr Erfahrung in den letzten beiden als die erste hatte. Ich hoffe, ich war trotzdem hilfreich.

+0

Ja, ich bin mit Self-Only-Speicher vertraut und es ist gut, an die verfügbaren Optionen erinnert zu werden. Ich mag besonders localStorage, großartig zum Speichern von Einstellungen, aber nicht gemeinsam nutzbar. Ein großartiger Anwendungsfall, um ein Beispiel für die Art des Problems, das ich zu lösen versuche, zu erklären, ist das Codieren einer sehr einfachen Chat-Box, die für alle Benutzer sichtbar ist, ohne einen vollständigen Server-Stack zu betreiben, nur um ein paar Zeilen Chat zu sparen. – Kzqai