GWT Ändern der URL nach der Verarbeitung von request-Parametern
Ich möchte mich für die Verlinkung mit url-request-Parameter in meinem GWT-app. Beispiel
http://host/app?action=A&p1=v1&p2=v2
Ich bin in der Lage, die action=A & andere Parameter, aber sobald ich fertig bin mit, dass ich zum ändern der URL, um Sie zu entfernen.
Das problem ist, dass sobald der Benutzer kommt auf die Webseite, für den Abschluss der "Aktion" mit den Parametern p1 & p2, er kann durchsuchen Sie die Website und kommen zurück zu der gleichen Seite das gleiche "Aktion", aber mit unterschiedlichem Wert für den Parameter p1, p2. Beim zweiten mal, obwohl ich nicht wirklich wollen und dabei die alten Werte für p1 & p2.
Habe ich überprüft Fenster.Lage.ersetzen (), aber es lädt die Seite, und alle Anwendungszustand geht verloren.
Gibt es eine Möglichkeit, dies zu tun, ohne die Seite neu zu laden-ganz ohne den params? Vielleicht durch das "entfernen" der query params?
Andere sinnvoller Weg, dies zu erreichen?
- Gerade als ich fertig Tippen, sehe ich einen möglichen Ansatz. Verfolgen, ob die Anforderung verarbeitet wurde, in den app-Zustand, und dann nicht verarbeiten Sie es erneut die nachfolgende Zeit. Aber die url noch bleiben würde, denke ich.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Haben Sie versucht, die Geschichte Klasse? Man konnte hören für die
ValueChangeEvent
s, das Parsen der Parameter, die es (das format der url würde ein bisschen ändern, aber das sollte kein Problem sein) und danach kann man "sauber" die url der aktuellen Seite mitHistory.newItem("something/maybeNull")
oderHistory.newItem("something/maybeNull", false)
wenn Sie möchten, um zu verhindern, dass dieValueChangeEvent
Veranstaltung von feuern.Geschichte pro Igro s Vorschlag ist der Weg zu gehen, wenn Sie können. Wenn Sie HABEN, um Informationen zu verarbeiten auf dem Server, bevor Sie können sogar zeigen jemand die Seite, die den host-GWT, dann können Sie Sie w/die servlet-oder was auch immer server-side-Technologie, die Sie verwenden, und senden Sie eine 304 leiten Sie den Benutzer zu einer Seite, die nicht den get-Parametern in der URL. Auch Sie könnten möglicherweise verwenden von POST statt GET, aber das ist irgendwie hässlich auch (Je nachdem, was genau du machst). Definitiv versuchen, die Geschichte system, wenn möglich.