Heim > Web-Frontend > js-Tutorial > Wie kann ich Variablen beim erneuten Laden von Seiten in Webanwendungen beibehalten?

Wie kann ich Variablen beim erneuten Laden von Seiten in Webanwendungen beibehalten?

Barbara Streisand
Freigeben: 2024-12-28 14:33:10
Original
565 Leute haben es durchsucht

How Can I Persist Variables Across Page Reloads in Web Applications?

So behalten Sie Variablen zwischen Seitenladevorgängen bei

Das Verfolgen von Benutzeraktionen beim erneuten Laden von Seiten ist entscheidend für die Verbesserung der Benutzererfahrung in Webanwendungen. Aufgrund der zustandslosen Natur von HTTP kann diese Aufgabe jedoch eine Herausforderung sein.

Versuch und Fehler

Ein erfolgloser Versuch, das Formularsendeereignis zu erfassen und anschließend ausgeblendet einzublenden Felder wurde gemeldet. Der JavaScript-Code verwendete eine globale Variable (angeklickt), um den Übermittlungsstatus zu speichern, konnte ihren Wert jedoch bei der Seitenaktualisierung nicht beibehalten.

Lösungen

Um dieses Problem zu beheben Es gibt mehrere Methoden, die implementiert werden können:

1. Abfragezeichenfolge

Beim Senden von Formularen mit der GET-Methode wird die URL mit einer Abfragezeichenfolge aktualisiert, die Parameter-Wert-Paare enthält. Dadurch können Sie ein Eingabefeld im Formular auf einen bestimmten Wert setzen. Beispielsweise kann ein verstecktes Feld hinzugefügt werden:

<form method="GET">
<input type="hidden" name="clicked" value="true" />
<input type="submit" />
</form>
Nach dem Login kopieren

Bei nachfolgenden Seitenladevorgängen können Sie JavaScript verwenden, um die Abfragezeichenfolge zu analysieren und auf übergebene Werte zu prüfen:

function getParameterByName(name) {
    name = name.replace(/[\[]/, "\[").replace(/[\]]/, "\]");
    var regex = new RegExp("[\?&amp;]" + name + "=([^&amp;#]*)"),
        results = regex.exec(location.search);
    return results === null ? "" : decodeURIComponent(results[1].replace(/\+/g, " "));
}

var clicked = getParameterByName('clicked');
Nach dem Login kopieren

2. Web Storage

HTML5 führte Web Storage ein, das eine API zum Beibehalten von Daten im Browser über Seitenladevorgänge hinweg bereitstellt. Es bietet zwei Optionen: sessionStorage und localStorage.

sessionStorage:

  • Daten bleiben nur während der aktuellen Browsersitzung bestehen.
  • Zum Speichern geeignet Temporäre Daten, wie z. B. angeklickte Zustände.

Code zum Festlegen der Schaltfläche „sessionStorage“. Klicken Sie auf:

$('input[type="submit"][value="Search"]').click(function() {
    sessionStorage.setItem('clicked', 'true');
});
Nach dem Login kopieren

Code zum Überprüfen, ob sessionStorage beim Laden der Seite festgelegt ist:

var clicked = sessionStorage.getItem('clicked');
Nach dem Login kopieren

localStorage:

  • Daten bleiben bestehen Auf unbestimmte Zeit (sofern vom Benutzer nicht manuell gelöscht).
  • Nützlich zum Speichern von Daten über einen Zeitraum hinaus einzelne Browsersitzung.

Code zum Festlegen von localStorage beim Klicken auf die Schaltfläche:

$('input[type="submit"][value="Search"]').click(function() {
    localStorage.setItem('clicked', 'true');
});
Nach dem Login kopieren

Code zum Überprüfen, ob localStorage beim Laden der Seite festgelegt ist:

var clicked = localStorage.getItem('clicked');
Nach dem Login kopieren

3. Cookies

Cookies bieten einen weiteren Mechanismus zur dauerhaften Datenspeicherung. Im Gegensatz zu Web Storage sind Cookies in erster Linie für die serverseitige Kommunikation konzipiert, können aber auch für die clientseitige Datenaufbewahrung verwendet werden.

jQuery vereinfacht die Handhabung von Cookies:

$('input[type="submit"][value="Search"]').click(function() {
    $.cookie('clicked', 'true', {expires: 1}); // expires in 1 day
});
Nach dem Login kopieren

Code zum Lesen ein Cookie beim Laden der Seite:

var clicked = $.cookie('clicked');
Nach dem Login kopieren

Um ein Cookie zu entfernen, rufen Sie $.cookie('clicked', null).

4. window.name

Obwohl etwas unkonventionell, kann die Eigenschaft window.name zum Speichern von Daten über Seitenaktualisierungen hinweg verwendet werden:

window.name = "my value";
Nach dem Login kopieren

Strings oder serialisierte Objekte können gespeichert werden:

window.name = JSON.stringify({ clicked: true });
Nach dem Login kopieren

Dieser Ansatz weist jedoch Einschränkungen auf. Der Zugriff ist über Tabs und Domänen hinweg möglich, jedoch nur innerhalb derselben Browsersitzung. Es wird im Allgemeinen nicht für die Beibehaltung wichtiger Daten empfohlen.

Das obige ist der detaillierte Inhalt vonWie kann ich Variablen beim erneuten Laden von Seiten in Webanwendungen beibehalten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage