Cookies-Beispiel funktioniert nicht
Matthias Scharwies
- cookies
- javascript
Servus!
Das Beispiel in JavaScript/Anwendung_und_Praxis/cookies funktioniert, wenn ich es lokal ausführe.
Sobald es als Beispiel hochgeladen ist, gibt es nur NaN für Zaehler aus. Was könnte das Problem sein?
Hier der direkte Link: Beispiel:JS-Anwendung-cookies.html
Vielen Dank im Voraus.
Matthias Scharwies
Servus!
Das Beispiel in JavaScript/Anwendung_und_Praxis/cookies funktioniert, wenn ich es lokal ausführe.
Sobald es als Beispiel hochgeladen ist, gibt es nur NaN für Zaehler aus. Was könnte das Problem sein?
Hier der direkte Link: Beispiel:JS-Anwendung-cookies.html
Ich hatte eigentlich gelobt mehr zu testen vor dem posten von Problemen!
Das Problem tritt nur imm FF45 auf; IE11, Chrome und Safari funktionieren. Was könnte das Problem sein?
Vielen Dank im Voraus.
Matthias Scharwies
Herzliche Grüße
Matthias Scharwies
Tach,
Ich hatte eigentlich gelobt mehr zu testen vor dem posten von Problemen!
Das Problem tritt nur imm FF45 auf; IE11, Chrome und Safari funktionieren. Was könnte das Problem sein?
das Problem tritt in deinem FF45 auf; Einstellungen für Cookies, Privacy-Addons?
mfg
Woodfighter
Tach!
Das Beispiel in JavaScript/Anwendung_und_Praxis/cookies funktioniert, wenn ich es lokal ausführe.
Sobald es als Beispiel hochgeladen ist, gibt es nur NaN für Zaehler aus. Was könnte das Problem sein?
Das Script geht davon aus, dass der erste Wert im Cookie der Zaehler ist. Das ist aber keine Gesetzmäßigkeit. Und so liest das Script einen falschen Wert, der keine Zahl ist.
Man bekommt sowas raus, wenn man den Debugger in den Entwicklertools anwirft. Breakpoint auf die erste ausgeführte Zeile setzen - in dem Fall die erste Zeile in der Funktion init() - und dann schrittweise durchlaufen und die Maus auf die Variablen halten, um zu sehen, was da jeweils drin ist.
Da man sowieso nicht annehmen kann, dass der erste Wert der gesucht ist, muss/sollte man das Cookie-Zerlegen anders gestalten. Erst am Semikolon split()en, dann durch das Array laufen und die einzelnen Elemente am Gleichheitszeichen split()en und ein Objekt (Ersatz für ein assoziatives Array) erstellen. Nun kann man schauen, ob in diesem Objekt Zaehler enthaltne ist und welchen Wert der hat. Oder einfacher parseInt(cookies.Zaehler) || 0 nehmen. Wenn parseInt 0 oder NaN liefert, kommt die 0 hinter dem || als Ergebnis zurück. So bekommt man immer eine Zahl.
dedlfix.
Servus!
Man bekommt sowas raus, wenn man den Debugger in den Entwicklertools anwirft. Breakpoint auf die erste ausgeführte Zeile setzen - in dem Fall die erste Zeile in der Funktion init() - und dann schrittweise durchlaufen und die Maus auf die Variablen halten, um zu sehen, was da jeweils drin ist.
Ja, da habe ich zu schnell aufgegeben!
Da man sowieso nicht annehmen kann, dass der erste Wert der gesucht ist, muss/sollte man das Cookie-Zerlegen anders gestalten. Erst am Semikolon split()en, dann durch das Array laufen und die einzelnen Elemente am Gleichheitszeichen split()en und ein Objekt (Ersatz für ein assoziatives Array) erstellen. Nun kann man schauen, ob in diesem Objekt Zaehler enthaltne ist und welchen Wert der hat. Oder einfacher parseInt(cookies.Zaehler) || 0 nehmen. Wenn parseInt 0 oder NaN liefert, kommt die 0 hinter dem || als Ergebnis zurück. So bekommt man immer eine Zahl.
Vielen Dank, ist geändert!
dedlfix.
Herzliche Grüße
Matthias Scharwies
Hallo Matthias Scharwies,
Da man sowieso nicht annehmen kann, dass der erste Wert der gesucht ist, muss/sollte man das Cookie-Zerlegen anders gestalten. Erst am Semikolon split()en, dann durch das Array laufen und die einzelnen Elemente am Gleichheitszeichen split()en und ein Objekt (Ersatz für ein assoziatives Array) erstellen.
Du gehst immer noch davon aus, dass der Zähler am Anfang des Cookies steht. Das muss aber nicht sein, zum Beispiel sieht der Cookie bei mir so aus.
"Zaehler=2; vector-nav-p-tb=true; vector-nav-p-Mitmachen=true; vector-nav-p-Schnell.E2.80.91Index=false; charinsert=0"
Nicht unbedingt das, was man erwarten würde.
Nun kann man schauen, ob in diesem Objekt Zaehler enthaltne ist und welchen Wert der hat. Oder einfacher parseInt(cookies.Zaehler) || 0 nehmen. Wenn parseInt 0 oder NaN liefert, kommt die 0 hinter dem || als Ergebnis zurück. So bekommt man immer eine Zahl.
„Nun“ = „Jetzt erst“!
Cookies sind irgendwie sowieso bäh in Zeiten von localStorage. Zum einen, weil Sie nicht um die halbe Welt zum Server geschickt werden und zum anderen, weil man einfache Schlüssel-Werte-Paare hat.
Bis demnächst
Matthias
Cookies sind irgendwie sowieso bäh in Zeiten von localStorage. Zum einen, weil Sie nicht um die halbe Welt zum Server geschickt werden und zum anderen, weil man einfache Schlüssel-Werte-Paare hat.
Noch etwas Überflüssiges bei Cookies: Das Verfallsdatum. Früher musste man immer mühsam ein Ende in drei Jahrzehnten angeben, denn es kann ja sein, dass jemand drei Jahrzehnte weg bleibt. Daten in Local Storage bleiben dem dummen Nutzer hingegen gleich ewig an der Backe kleben. Recht so!!1
Servus!
Da man sowieso nicht annehmen kann, dass der erste Wert der gesucht ist, muss/sollte man das Cookie-Zerlegen anders gestalten. Erst am Semikolon split()en, dann durch das Array laufen und die einzelnen Elemente am Gleichheitszeichen split()en und ein Objekt (Ersatz für ein assoziatives Array) erstellen.
Du gehst immer noch davon aus, dass der Zähler am Anfang des Cookies steht. Das muss aber nicht sein, zum Beispiel sieht der Cookie bei mir so aus.
"Zaehler=2; vector-nav-p-tb=true; vector-nav-p-Mitmachen=true; vector-nav-p-Schnell.E2.80.91Index=false; charinsert=0"
Nicht unbedingt das, was man erwarten würde.
Nun kann man schauen, ob in diesem Objekt Zaehler enthaltne ist und welchen Wert der hat. Oder einfacher parseInt(cookies.Zaehler) || 0 nehmen. Wenn parseInt 0 oder NaN liefert, kommt die 0 hinter dem || als Ergebnis zurück. So bekommt man immer eine Zahl.
„Nun“ = „Jetzt erst“!
Ok, wer ich noch mal anschauen!
Cookies sind irgendwie sowieso bäh in Zeiten von localStorage. Zum einen, weil Sie nicht um die halbe Welt zum Server geschickt werden und zum anderen, weil man einfache Schlüssel-Werte-Paare hat.
Der Link steht unten, Artikel gibt's auch dazu. Sollte man bei Cookies eine Empfehlung integrieren?
Bis demnächst
Matthias
Herzliche Grüße
Matthias Scharwies
Hallo Matthias Scharwies,
Cookies sind irgendwie sowieso bäh in Zeiten von localStorage. Zum einen, weil Sie nicht um die halbe Welt zum Server geschickt werden und zum anderen, weil man einfache Schlüssel-Werte-Paare hat.
Der Link steht unten, Artikel gibt's auch dazu. Sollte man bei Cookies eine Empfehlung integrieren?
<I>
Bis demnächst
Matthias