pl: history.pushState

In deutscher Sprache hier ausführlich beschrieben.

Viel Spass damit und Schönes Wochenende!

  1. Als Laie finde ich die die Beispielsituation zu komplex, desweiteren gehst du gar nicht auf die "placeholder"-Funktion ein, die dir das Zustandsobjekt generiert, später dann auch noch Jquery.

    Und das beste... Anstatt direkt beim Eventhandler auf den übergebenen Parameter zu reagieren, greifst du auf ein globales Objekt zurück. Mit Javascript und dessen Events respektive den Eventhandlern hab ich schon ein paar mal rumgespielt, dadurch kam mir dein Handler sonderbar vor, also kurz gesucht:

    window.onpopstate = function(event) {
      console.log("location: " + document.location + ", state: " + JSON.stringify(event.state));
    };
    

    (Quelle: https://developer.mozilla.org/en/docs/Web/Events/popstate)

    Ich weiß jetzt nicht genau wie die JS-Interna funktioniert, wenn man (warum auch immer) 2x history.pushState() aufruft, sollten doch beide Aufrufe des Eventhandlers – nach deiner Herangehensweise – das gleiche Objekt bekommen, da die Handler ja asynchron aufgerufen werden, oder liege ich falsch?

    MfG kackb00n

    1. Ich weiß jetzt nicht genau wie die JS-Interna funktioniert, wenn man (warum auch immer) 2x history.pushState() aufruft, sollten doch beide Aufrufe des Eventhandlers – nach deiner Herangehensweise – das gleiche Objekt bekommen, da die Handler ja asynchron aufgerufen werden, oder liege ich falsch?

      Das musst Du wohl mal selber rausfinden, mein Artikel hatte ein anderes Ziel: Nämlich zu vermitteln wie es überhaupt funktioniert anhand eines Objekts den Zustand einer Anwendung wiederherzustellen.

      In Fakt ist es eher wichtig, die Funktion history.pushState() mit konsistenten Daten zu versorgen, d.h., dass das erste und das dritte an diese Funktion übergebene Argument exakt dieselben Daten und damit denselben Zustand repräsentiert.

      MfG

      PS: Einer der Gründe, warum ich Formulardaten in allen meinen Anwendungen stets als Objekt erfasse erst dann serialisiere wenn sie rausgehen.

    2. Als Laie finde ich die die Beispielsituation zu komplex, desweiteren gehst du gar nicht auf die "placeholder"-Funktion ein, die dir das Zustandsobjekt generiert, später dann auch noch Jquery.

      Artikel um diesbezügliche Erläuterungen ergänzt.

      Und das beste... Anstatt direkt beim Eventhandler auf den übergebenen Parameter zu reagieren, greifst du auf ein globales Objekt zurück. Mit Javascript und dessen Events respektive den Eventhandlern hab ich schon ein paar mal rumgespielt, dadurch kam mir dein Handler sonderbar vor, also kurz gesucht:

      window.onpopstate = function(event) {
        console.log("location: " + document.location + ", state: " + JSON.stringify(event.state));
      };
      

      Wie (traditionel, jquery, modern) Du den Eventlistener notierst ist in diesem Zusammenhang uninteressant. Btw., window ist ein global verfügbares Objekt.

      Schöne Grüße!