HTML/Javascript Wert speichern ohne Server?
Sagen wir mal meine Aufgabe ist es eine Webseite zu erstellen mit einem Counter, drückt man drauf zählt er hoch. 0->1->2->3>-4>-5->...
Der Wert soll aber gespeichert werden, wenn die nächste Person diese Seite aufruft, soll der Counter nicht wieder bei 0 anfangen, sondern da wo die anderen Personen aufgehört haben.
Das Problem: ich darf NUR HTML, CSS und Javascript benutzen.
Geht das überhaupt ohne PHP, Datenbank oder ähnlichem?
Ich hab gelesen es gibt Local Storage von HTML5 und es gibt Cookies, aber die sind nur für den Benutzer lokal und bringt mir nichts, soweit ich das verstanden habe.
Könnte ich irgendwie die Werte in einer Text Datei speichern und die Text Datei mit HTML oder Javascript wieder auslesen?
7 Antworten
Nö.
Du musst den Zählwert eines solchen Besucherzählers ja zentral auf dem Server speichern.
HTML, CSS und JavaScript sind alle drei clientseitig. Sie erwachen erst auf dem Computer des Users zum Leben.
Du kannst sicherlich von JavaScript aus auf den eigenen Server zugreifen. Aber womit soll der Server denn diese Anfragen verarbeiten?
-> Du musst etwas serverseitiges verwenden.
Warum steht PHP nicht zur Verfügung? Das ist in der heutigen Zeit etwas ungewöhnlich, denn damit geht das wunderbar.
Da brauchst du noch nichtmal JavaScript sondern programmierst in den Header der Website einen kurzen PHP-Block ein:
1. Vorherigen Wert aus Textdatei auslesen
2. Wert erhöhen und in dieselbe Textdatei schreiben
3. Ein echo($wert); an einer anderen Stelle, wo der Wert angezeigt werden soll.
4. (Vielleicht noch PHP-Session verwenden, damit das Herumnavigieren auf der Seite als nur ein Besuch gezählt wird)
Das passiert komplett serverseitig. Der User bekommt davon gar nichts mit.
Google einmal nach inner.Html dort kannst du daten ohne Datenbank "speichern" ;)
mit plain Javascript wird das nicht gehen.
Läuft die Seite wirklich über keinen Server? Das würde bedeuten man ruft sie rein lokal auf, da macht ein Counter auch kaum Sinn.
Wenn Du einen lokalen Server nutzt, dann schau Dir aber nodeJS an: https://de.wikipedia.org/wiki/Node.js
vielleicht hilft Dir das serverseitige JavaScript Framework weiter
Es ist eher eine Hausaufgabe und so viel erwartet der Lehrer wahrscheinlich nicht, aber ich hab mich dann halt wirklich in der Praxis gefragt, wie das machbar sein soll wenn im Lastenheft vom Lehrer nur "HTML5, CSS3, JavaScript" steht.
Es geht um ein Unternehmen, welches Tablets mit meiner Webseite im Eingang hinstellen will, und da sollen Leute etwas auswählen. Es soll dann auch angezeigt werden "x Leute haben das gleiche Gewählt". In jedem Standort soll so ein Tablet stehen und natürlich den Wert von allen Standorten zusammen anzeigen.
Mit sowas wie PHP oder SQL könnte ich das ja bestimmt lösen, aber ich hab mich einfach gefragt ob es auch nur mit Javascript geht.
Da dachte ich zuerst an einen dieser alten Counter die man früher auf Webseiten einsetzte ^^
Aber es funktioniert halt nicht und wenn, wie andere schon schrieben nur auf der selben Maschine und solange die Seite dauerhaft offen bleibt. Dann könnte man auch einfach eine JS Variable füllen und bräuchte nicht einmal ein Cookie.
Du könntest eine json-Datei aufrufen und dort Daten hernehmen, aber mit js allein kann man keine Daten in json-Dateien speichern.
Dann gibt es wie gesagt localStorage.
Ein Schlupfloch bei deiner Begrenzung wäre die Datenbank Firebase, die von Google gehostet wird. Um dort Daten abzuspeichern und abzurufen benötigst du nur js.
Das geht nicht. JavaScript ist in deinem Fall die einzige Sprache mit der du programmierst, und die ist nur Clientseitig. Ohne PHP oder ähnlichem kannst du keine Werte auf dem Server zwischenspeichern.
Wie gesagt ist ist bloß eine Hausaufgabe und der Lehrer hat wohl nicht weit genug gedacht, im Lastenheft steht "HTML5/CSS3/JavaScript". Er meinte ebenfalls er will mit uns nur Javascript machen, PHP nicht. Schade eigentlich. So viel zur IT Ausbildung.
Trotzdem danke für deine ausführliche Antwort! :-)