Heim >Web-Frontend >js-Tutorial >Wie kann ich Variablen über Seitenladevorgänge hinweg in einer zustandslosen HTTP-Umgebung beibehalten?
Persistente Variablen zwischen Seitenladevorgängen
Da HTTP zustandslos ist, erfordert das Beibehalten von Werten über Seitenneuladevorgänge hinweg externen Speicher. So überwinden Sie diese Einschränkung:
Abfragezeichenfolge
Bei der Formularübermittlung über GET enthält die Abfragezeichenfolge (?parameter=value) Formularfelddaten. Legen Sie den Wert eines ausgeblendeten Felds entsprechend fest:
<form method="GET"> <input type="hidden" name="clicked" value="true" /> <input type="submit" /> </form>
Extrahieren Sie beim Laden der Seite den Abfrageparameter:
function getParameterByName(name) { var regex = new RegExp("[\?&]" + name + "=([^&#]*)"), results = regex.exec(location.search); return results === null ? "" : decodeURIComponent(results[1].replace(/\+/g, " ")); } var clicked = getParameterByName('clicked');
Web Storage
HTML5 bietet Web Storage, das eine browserbasierte Datenspeicherung ermöglicht. SessionStorage speichert Daten nur während der aktuellen Browsersitzung:
sessionStorage.setItem('clicked', 'true');
Beim Laden der Seite den gespeicherten Wert abrufen:
var clicked = sessionStorage.getItem('clicked');
Cookies
Cookies werden hauptsächlich zur serverseitigen Datenspeicherung verwendet, können aber auch zur clientseitigen Speicherung genutzt werden. jQuery vereinfacht die Cookie-Verwaltung:
$.cookie('clicked', 'true', {expires: 1}); // expires in 1 day
So lesen Sie das Cookie beim Laden der Seite:
var clicked = $.cookie('clicked');
Denken Sie daran, das Cookie zu deaktivieren, wenn es nicht mehr benötigt wird:
$.cookie('clicked', null);
Window.name
Obwohl nicht empfohlen, kann window.name Zeichenfolgen seitenübergreifend speichern Aktualisierungen und sogar Domains:
window.name = "my value";
Greifen Sie beim Laden der Seite auf den gespeicherten Wert zu:
var value = window.name;
Das obige ist der detaillierte Inhalt vonWie kann ich Variablen über Seitenladevorgänge hinweg in einer zustandslosen HTTP-Umgebung beibehalten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!