Ich möchte eine Schaltfläche erstellen, um eine Seite neu zu laden, ohne $_POST
data und $_SESSION
zu verlieren.
Im Internet habe ich diesen Code gefunden:
Und hier ist der Code meines Knopfes:
%Vor% Aber wenn ich auf die Schaltfläche klicke, verliere ich $_POST
data und $_SESSION
.
Wenn ich es mit dem Tastaturbefehl Strg + R (Chrome) oder F5 (Firefox, IE9) versuche, zeigt der Browser eine Warnung an, dass ich ' Ich versuche erneut, die Form vorzulegen. Wenn ich akzeptiere, funktioniert es.
Wie kann ich diese Art der Browser-Aktualisierung mit einem JavaScript-Befehl reproduzieren? Oder ist der Code meiner Schaltfläche falsch?
Vielen Dank für Ihre Hilfe.
Versuchen Sie es mit
%Vor%Dadurch wird eine "harte" Aktualisierung durchgeführt, wobei nicht nur das DOM neu erstellt wird, sondern auch alle Ressourcen vom Server abgerufen werden.
Sie können mehr im Mozilla Developer-Wiki lesen.
Anscheinend ist location.reload()
das Äquivalent von F5
beim Scripting, während Ctrl+F5
/ Ctrl+R
mit location.reload(true)
simuliert werden kann.
Wie ThiefMaster bereits erwähnt hat, fehlt am Ende Ihrer ;return false
-Anweisung onclick
, oder Sie sollten href
auf javascript:void 0
* setzen, um den Browser zu verhindern vom Folgen des Links.
* Oder ein anderes Stück JavaScript, das undefined
Dies sollte in jedem Fall passieren, solange Sie sich an dem Ort befinden, an dem Sie POSTIERT haben. Es ist jedoch üblich, nach einer POST-Anforderung umzuleiten, um genau das zu vermeiden, was Sie versuchen zu tun.
Der Grund, warum Ihr Code nicht funktioniert, ist die Tatsache, dass href=""
eine GET-Anfrage an die aktuelle URL auslöst. Verwenden Sie href="#"
, um zu verhindern, dass eine "neue" Seite geladen wird, oder fügen Sie return false;
am Ende Ihres onclick="..."
codes hinzu.
Das Ctrl + R
aktualisiert die Seite und löscht den Cache. Und ich nehme an, Sie verwenden den Internet Explorer? Einige andere Browser verhalten sich wie folgt, wenn Sie Ctrl + F5
, nicht jedoch Ctrl + R
Quellen:
Ссылка
Browserproblem in Ctrl-R
Tags und Links javascript session browser-refresh